ホームページ > バックエンド開発 > C++ > リフレクションを使用して C# の文字列からクラス参照を取得するにはどうすればよいですか?

リフレクションを使用して C# の文字列からクラス参照を取得するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-14 10:04:44
オリジナル
168 人が閲覧しました

How Can I Get a Class Reference from a String in C# Using Reflection?

リフレクションを使用して文字列から C# クラス参照を取得する

C# リフレクションは、ランタイム型情報に動的にアクセスして操作するための強力なメカニズムを提供します。 これには、文字列表現のみを使用してクラス参照を取得することが含まれます。

プロセス:

このタスクの中心となるメソッドは Type.GetType() です。このメソッドは、完全修飾型名を含む文字列を受け入れ、その型を表す Type オブジェクトを返します。

例:

FooClass という名前のクラスがあるとします。 Type オブジェクトを取得するには:

<code class="language-csharp">string className = "FooClass";
Type type = Type.GetType(className);</code>
ログイン後にコピー

FooClass 内の静的メソッド (例: MyMethod) にアクセスするには、GetMethod():

を使用します。
<code class="language-csharp">MethodInfo method = type.GetMethod("MyMethod", BindingFlags.Static | BindingFlags.Public);</code>
ログイン後にコピー

最後に、Invoke() を使用してメソッドを呼び出します:

<code class="language-csharp">method.Invoke(null, null); // null for static methods, null for no parameters</code>
ログイン後にコピー

null は静的メソッドの最初の引数として使用され (インスタンスは必要ありません)、2 番目の引数はパラメーターの配列 (メソッドがパラメーターを取らない場合は null) であることに注意してください。

外部アセンブリの処理:

上記の例は、FooClass が同じアセンブリ内に存在することを前提としています。異なるアセンブリにある型の場合は、完全修飾型名の一部としてアセンブリの名前を指定する必要があります。 正確な形式はアセンブリの場所によって異なります。 Type.GetType() メソッド内でのアセンブリ名の指定に関する詳細なガイダンスについては、MSDN ドキュメントを参照してください。

さらなる探索:

C# リフレクションをより詳しく理解するには、Type.GetType()MethodInfo.GetMethod()、および MethodInfo.Invoke() に関する Microsoft の公式ドキュメントを参照してください。 これらのリソースは、包括的な詳細と高度な使用シナリオを提供します。

以上がリフレクションを使用して C# の文字列からクラス参照を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート