「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > C#での文字列表現からオブジェクトタイプを決定する方法は?

C#での文字列表現からオブジェクトタイプを決定する方法は?

2025-02-08に投稿
ブラウズ:141

c#文字列表現に基づいてオブジェクトタイプを決定します

c#では、タイプ名を含む文字列を対応する型オブジェクトに変換できます。ただし、この変換に使用される方法は、型が呼び出しコードと同じアセンブリで定義されているか、異なるアセンブリで定義されているかによって異なります。

use type.getType(string)

]

タイプが同じアセンブリで定義されている場合、 type.getType(string)メソッドを使用して、文字列として完全に適格なタイプ名を提供できます。たとえば、タイプのタイプ int を取得するには、

を使用できます。
Type.GetType("System.Int32");
]

use assembly.getType(string)

]

タイプが別のアセンブリで定義されている場合、アセンブリ名も提供する必要があります。 Assembly.getType(String)メソッドを使用して実装できます。まず、アセンブリへの参照を取得し、その参照を使用してタイプ

を取得します
Assembly asm = typeof(SomeKnownType).Assembly;
Type type = asm.GetType("Namespace.MyClass");

名前空間とアセンブリの資格

タイプの名前空間が、 type.getType()または assembly.getType()に提供される文字列に含まれていることを確認してください。さらに、強く名前が付けられたアセンブリの場合、バージョン、文化、公開キータグなど、完全なアセンブリアイデンティティを含める必要がある場合があります。

サンプルシーン

文字列にタイプの完全な資格のある名前が含まれる次のシナリオを検討してください:

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

myAssembly が呼び出されたアセンブリによって参照されるかどうかに応じて、 type.getType()または 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#?

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3