"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment déterminer le type d'objet à partir de sa représentation de chaîne en C #?

Comment déterminer le type d'objet à partir de sa représentation de chaîne en C #?

Publié le 2025-02-08
Parcourir:654

c # détermine le type d'objet basé sur la représentation de chaîne

En C #, une chaîne contenant le nom de type peut être convertie en l'objet de type correspondant. Cependant, la méthode utilisée pour cette conversion dépend du fait que le type est défini dans le même assemblage que le code d'appel ou dans un assemblage différent.

utiliser type.getType (string)

]

Si le type est défini dans le même assemblage, vous pouvez utiliser la méthode type.getType (string) et fournir un nom de type entièrement qualifié en tant que chaîne. Par exemple, pour obtenir le type type du type de données int , vous pouvez utiliser:

Type.GetType("System.Int32");
]

utiliser assembly.getType (string)

]

Si le type est défini dans un assemblage différent, vous devez également fournir le nom de l'assemblage. Il peut être implémenté en utilisant la méthode assembly.getType (string) . Premièrement, obtenez une référence à l'assemblage, puis utilisez cette référence pour obtenir type :

Assembly asm = typeof(SomeKnownType).Assembly;
Type type = asm.GetType("Namespace.MyClass");

Qualifications de l'espace de noms et d'assembly

Assurez-vous que l'espace de noms de type est inclus dans la chaîne fournie à type.getType () ou assembly.getType () . De plus, pour les assemblées fortement nommées, il peut être nécessaire d'inclure l'identité complète de l'assemblage, y compris la version, la culture et les balises clés publiques.

Exemple de scène

Considérez le scénario suivant où une chaîne contient un nom entièrement qualifié du type:

string typeName = "Namespace.MyClass, MyAssembly";
]

selon que myAssembly est référencé par l'assembly appelé, vous pouvez utiliser type.getType () ou assembly.getType () :

// 如果 MyAssembly 被引用
Type type1 = Type.GetType(typeName);

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

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

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3