c#では、タイプ名を含む文字列を対応する型オブジェクトに変換できます。ただし、この変換に使用される方法は、型が呼び出しコードと同じアセンブリで定義されているか、異なるアセンブリで定義されているかによって異なります。
type.getType(string)
タイプが同じアセンブリで定義されている場合、 type.getType(string)
メソッドを使用して、文字列として完全に適格なタイプ名を提供できます。たとえば、タイプの
タイプ int
を取得するには、
Type.GetType("System.Int32");
]
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);
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3