Utilizando componentes COM via Late Binding no VB.NET

 

Você já deve ter visto que podemos fazer references no VB.NET para classes COM. Quando fazemos um referencia no VB.NET para uma classe COM o VB.NET cria um wrapper, uma classe CLS que servirá de intermediária na comunicação com a classe COM.

Mas, conhecendo a arquitetura COM, você deve ter percebido que esta metodologia permite você fazer o acesso a um componente COM via Early binding, ou seja, fazendo referencia para o componente.

Porém não existe nada que proíba a realização de late binding no .NET . Por mais que o late binding gere perda de performance, por só identificar o objeto em tempo de execução, existem casos em que isso é necessário, permitindo a viculação de aplicações/componentes em tempo de execução.

O VB.NET possui uma instrução CreateObject (no framework, um método de Microsoft.VisualBasic.Interaction) que permite a criação de um componente COM em run-time utilizando late binding. Veja:

 

Private Sub Button2_Click(ByVal sender As System.Object,

  ByVal e As System.EventArgs) Handles Button2.Click

  Dim x As Object

  x = CreateObject("minhaclasse.hello")

  MsgBox(x.hello())

End Sub

 

Observe a característica do late-binding: A variável definida sem um tipo específico, como object. Não esqueça da forma de eliminar o componente COM, que citamos há algumas dicas atrás.