Heim >Backend-Entwicklung >C++ >Wie bestimmt man den Objekttyp anhand seiner String-Darstellung in C#?

Wie bestimmt man den Objekttyp anhand seiner String-Darstellung in C#?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-23 14:47:13199Durchsuche

Bestimmen Sie den Objekttyp basierend auf der Zeichenfolgendarstellung in C#

In C# kann eine Zeichenfolge, die einen Typnamen enthält, in das entsprechende Type-Objekt konvertiert werden. Die für diese Konvertierung verwendete Methode hängt jedoch davon ab, ob der Typ in derselben Assembly wie der aufrufende Code oder in einer anderen Assembly definiert ist.

Verwenden Sie Type.GetType(string)

Wenn der Typ in derselben Assembly definiert ist, können Sie die Methode Type.GetType(string) verwenden und den vollständig qualifizierten Typnamen als Zeichenfolge bereitstellen. Um beispielsweise das int des Datentyps Type abzurufen, würden Sie Folgendes verwenden:

<code class="language-csharp">Type.GetType("System.Int32");</code>

Verwenden Sie Assembly.GetType(string)

Wenn der Typ in einer anderen Assembly definiert ist, müssen Sie auch den Assemblynamen angeben. Dies kann mit der Methode Assembly.GetType(string) erreicht werden. Rufen Sie zunächst einen Verweis auf die Assembly ab und verwenden Sie dann diesen Verweis, um das Type abzurufen:

<code class="language-csharp">Assembly asm = typeof(SomeKnownType).Assembly;
Type type = asm.GetType("Namespace.MyClass");</code>

Namespace- und Assembly-Qualifikation

Stellen Sie sicher, dass Sie den Namespace des Typs in die Zeichenfolge einschließen, die für Type.GetType() oder Assembly.GetType() bereitgestellt wird. Darüber hinaus kann es bei Assemblys mit starkem Namen erforderlich sein, die vollständige Assemblyidentität einschließlich Version, Kultur und Public-Key-Tags anzugeben.

Beispielszenario

Stellen Sie sich das folgende Szenario vor, in dem eine Zeichenfolge den vollständig qualifizierten Namen eines Typs enthält:

<code class="language-csharp">string typeName = "Namespace.MyClass, MyAssembly";</code>

Abhängig davon, ob MyAssembly von der aufrufenden Assembly referenziert wird, kann entweder Type.GetType() oder Assembly.GetType() verwendet werden:

<code class="language-csharp">// 如果 MyAssembly 被引用
Type type1 = Type.GetType(typeName);

// 如果 MyAssembly 未被引用
Assembly asm = typeof(SomeKnownType).Assembly;
Type type2 = asm.GetType(typeName);</code>

How to Determine Object Type from its String Representation in C#?

Das obige ist der detaillierte Inhalt vonWie bestimmt man den Objekttyp anhand seiner String-Darstellung in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn