2

モジュールを追加するために必要なコードもいくつか扱っていて、すべてが正しくセットアップされていると思っていましたが、この最後のビットで困惑しました。

比較的単純に思えますが、型をジェネリック メソッドに渡しています。

var name typeof(T).AssemblyQualifiedName;

これを行うことができるように

var type = Type.GetType(name);

ただし、最後の行で例外をスローしてnameいますnull

完全修飾アセンブリ名が必要であることはわかってGetTypeいますが、null として返される理由がわかりません。

AssemblyQualifiedNameそれは、コードがどのように参照されているかを知っているので、型から放出されると仮定したので、コードで根本的に間違ったことをしているということですか?

4

1 に答える 1

9

nullAssemblyQualifiedName 返すことができます:

Type のアセンブリ修飾名。これには、Type の読み込み元のアセンブリの名前が含まれます。現在のインスタンスがジェネリック型パラメーターを表している場合は null。

実際に使用しているだけの場合、ジェネリックメソッドが奇妙な方法でリフレクションを介して呼び出されていない限り、実際にはジェネリック型パラメーターを表す必要があるようには見えません。typeof(T)

それなのに、なぜ使おうとしているのType.GetTypeですか?必要なのは

var type = typeof(T);

...それはまさにあなたが望むことではないでしょうか? なぜタイプの名前を経由するのですか?

于 2012-05-30T16:19:32.703 に答える