C#-String-zu-Typ-Konvertierung: Null-Rückgaben vermeiden
Das Konvertieren von Zeichenfolgen, die Klassennamen darstellen, in tatsächliche Typen in C# kann manchmal zu Nullergebnissen führen. Dies tritt häufig bei der Verwendung von Type.GetType("System.Int32")
auf, das nur für Typen innerhalb von mscorlib
oder der aktuellen Assembly korrekt funktioniert.
Um Ihre benutzerdefinierten Typen erfolgreich zu konvertieren, müssen Sie sowohl den Namespace als auch die Assembly angeben:
<code class="language-csharp">Type type = Type.GetType("Namespace.MyClass, MyAssembly");</code>
Stellen Sie bei Assemblys mit starken Namen sicher, dass Sie alle relevanten Assemblyinformationen angeben, wie in der Type.GetType(string)
Dokumentation beschrieben.
Wenn Sie alternativ einen Verweis auf die Assembly haben, verwenden Sie Assembly.GetType()
:
<code class="language-csharp">Assembly asm = typeof(SomeKnownType).Assembly; Type type = asm.GetType(namespaceQualifiedTypeName);</code>
Diese Methoden ermöglichen eine zuverlässige String-Typ-Konvertierung in verschiedenen Situationen.
Das obige ist der detaillierte Inhalt vonWie vermeide ich Null-Rückgaben beim Konvertieren von Zeichenfolgen in Typen in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!