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
Freigeben: 2025-01-23 14:47:13
Original
198 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage