Bem vindo ao meu blog, faça comentários ao meu código para tentarmos chegar a uma boa solução

quinta-feira, 12 de julho de 2007

Invocar Objectos através de Strings

Criar uma instância de um objecto dinamicamente:
frm = DirectCast(Activator.CreateInstance(Type.GetType("Nome_do_Assembly." & Trim(Form))), Form)


Aceder às propriedades (ou qualquer outro elemento) de um Objecto:
frm.GetType.GetProperty("Nome_daPropriedade").GetValue(frm, Nothing)

Função para aceder ao FRM:

Public Shared Function GetObjectByName(ByVal Nome As String) As Object
Dim arOfTypes As Type()
'Array de Tipos de cada assembly
Dim objAssembly As System.Reflection.Assembly
objAssembly = System.Reflection.Assembly.Load("Netsigma.GRLReports")
arOfTypes = objAssembly.GetTypes
'For Each type in arOfTypes get Properties,Methods and Events
For Each T As Type In arOfTypes
Try
Dim s As Object = Activator.CreateInstance(T)
If T.Name.Equals(Nome) Then
Return s
End If
Catch ex As Exception
End Try
Next
Return Nothing
End Function

Sem comentários: