Der beste Weg, ein Type-Objekt aus einer Zeichenfolge in .NET zu erhalten
-
03-07-2019 - |
Frage
Was ist der beste Weg, um eine Zeichenfolge in ein Type-Objekt in .NET?
konvertierenIssues zu beachten:
- Der Typ kann in einer anderen Baugruppe sein.
- Die Montage der Typ kann noch nicht geladen werden.
Dies ist mein Versuch, aber nicht die zweite Ausgabe-Adresse
Public Function FindType(ByVal name As String) As Type
Dim base As Type
base = Reflection.Assembly.GetEntryAssembly.GetType(name, False, True)
If base IsNot Nothing Then Return base
base = Reflection.Assembly.GetExecutingAssembly.GetType(name, False, True)
If base IsNot Nothing Then Return base
For Each assembly As Reflection.Assembly In _
AppDomain.CurrentDomain.GetAssemblies
base = assembly.GetType(name, False, True)
If base IsNot Nothing Then Return base
Next
Return Nothing
End Function
Lösung
Sie müssen möglicherweise GetReferencedAssemblies () -Methode für das zweite nennen.
namespace reflectme
{
using System;
public class hello
{
public hello()
{
Console.WriteLine("hello");
Console.ReadLine();
}
static void Main(string[] args)
{
Type t = System.Reflection.Assembly.GetExecutingAssembly().GetType("reflectme.hello");
t.GetConstructor(System.Type.EmptyTypes).Invoke(null);
}
}
}
Andere Tipps
Sie können mit Type.GetType (string) um mach das. Der Typname muss Montag qualifiziert sein, aber das Verfahren wird die Anordnung bei Bedarf laden. Die Montage Qualifikation ist nicht erforderlich, wenn der Typ in mscorlid oder der Baugruppe, die den GetType Aufruf ausführt.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow