OVH Cloud OVH Cloud

Appel d'une classe par son nom ?

3 réponses
Avatar
Didier
Debutant en VB .NET j'aimerais savoir si il est possible d'appeler une classe
dont le nom est dans une String

Dim strClassName as String = "CLASS1"

dim myObj as new Object
myObj = ????? applel de la classe CLASS1

merci d'avance
Didier

3 réponses

Avatar
Philippe L [MS]
Bonsoir,
oui, c'est possible, faut utiliser la reflexion.
voir dans System.Reflection Namespace
et la methode Assembly.CreateInstance

Cdt,
Philippe


"Didier" wrote in message
news:
Debutant en VB .NET j'aimerais savoir si il est possible d'appeler une
classe
dont le nom est dans une String

Dim strClassName as String = "CLASS1"

dim myObj as new Object
myObj = ????? applel de la classe CLASS1

merci d'avance
Didier



Avatar
Didier
Merci pour cette reponse

petite precision que j'aurais du donner des le debut
j'utilise le framework .NET 2.0 et Visual basic 2005
je n'ai pas trouve de CreateInstance dans le namespace System.reflection
si quelqu'un peut me filer un petit bout de code (qui marche)

Didier

"Philippe L [MS]" wrote:

Bonsoir,
oui, c'est possible, faut utiliser la reflexion.
voir dans System.Reflection Namespace
et la methode Assembly.CreateInstance

Cdt,
Philippe



Avatar
Patrice
Quelque chose comme :

Private Class Class1
Public Sub Hello()
MsgBox("Hello")
End Sub
End Class

Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim strClass As String = "WindowsApplication1.Form1+Class1"
Dim o As New Class1
MsgBox(o.GetType.ToString)
Dim obj As Object
obj =
Activator.CreateInstance(Reflection.Assembly.GetExecutingAssembly.GetType(strClass))
obj.Hello()
End Sub

Il peut être également intéressant d'expliquer le but final (par exemple si
les classes doivent avoir un certain nombre de méthodes bien précises, voir
les interfaces).

--
Patrice

"Didier" a écrit dans le message de news:

Merci pour cette reponse

petite precision que j'aurais du donner des le debut
j'utilise le framework .NET 2.0 et Visual basic 2005
je n'ai pas trouve de CreateInstance dans le namespace System.reflection
si quelqu'un peut me filer un petit bout de code (qui marche)

Didier

"Philippe L [MS]" wrote:

Bonsoir,
oui, c'est possible, faut utiliser la reflexion.
voir dans System.Reflection Namespace
et la methode Assembly.CreateInstance

Cdt,
Philippe