23. september 2002 - 08:51Der er
2 kommentarer og 1 løsning
CreateNewInstance()
Jeg har følgende kommando i java som opretter et objekt udfra et strengnavn: Class.forName(className).newInstance(); Hvordan mapper jeg den til vb .net ??
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
' This class is deployed as an assembly consisting of one DLL, ' called HelloWorld.dll. Imports System
Public Class HelloWorld ' Constant Hello World string. Private m_helloWorld As String = "Hello World" ' Default public constructor. Public Sub New()
End Sub 'New
' Print "Hello World" plus the passed text. Public Sub PrintHello(txt As String) ' Output to the Console. Console.WriteLine((m_helloWorld & " " & txt)) End Sub End Class
Imports System Imports System.Reflection Module VisualBasicLateHello Sub Main() ' Set up the variables. Dim assem as System.Reflection.Assembly Dim obj as Object Dim helloType as Type Dim printMethod as MethodInfo ' Load the assembly to use. assem = System.Reflection.Assembly.Load("HelloWorld") ' Get the type to use from the assembly. helloType = assem.GetType("HelloWorld") ' Get the method to use from the type. printMethod = helloType.GetMethod("PrintHello") ' Create an instance of the type. obj = Activator.CreateInstance(helloType) ' Create an array to hold the arguments. Dim args(1) as Object ' Set the arguments. args(0) = "From Visual Basic Late Bound" ' Invoke the method. printMethod.Invoke(obj, args) End Sub End Module
Det er da nødvendigt at vide hvor klassen skal loades fra, hvis der er flere Assemblies der definerer samme klasse. Ovenstående kan skrives lidt kortere HVIS den klasse du vil instansiere er en del af den aktuelle assembly.
Assembly abDenne = Assembly.GetExecutingAssembly(); Type enType = abDenne.GetType("MitNameSpace.MinKlasse"); Object objektet = Activator.CreateInstance(enType); MinKlasse mitObject = objektet as mitObject; mitObject.MinMetode();
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.