0

Type.GetType関数を使用して、クラスに関するリフレクション情報を取得しています。アプリからその関数を使用するとすべて問題なく動作しますが、アプリから以前にロードした外部 dll からその関数を呼び出す必要があります。

メインアプリから呼び出された場合、このコードは正常に機能します

Type myType1 = Type.GetType("MyNameSpace.MyType");

しかし、そのコードがdllの中に置かれている場合(myType1は何も返さない)失敗します(そのdllは私のアプリからロードされます)

問題はType.GetType、dll をロードする Exe に存在するタイプをロードするためにどのように使用できるかです。

編集 :

dll をロードするアセンブリから型をロードする方法のように、どの質問を再定式化できると思いますか?

MyEXE
  Myclass   
  MyDll (loaded by MyExe)
    Type.GetType //only get types of the MyDll assembly, how i can access the Myclass type which is defined on MyExe?
4

2 に答える 2

3

プロジェクト スコープ外の DLL を使用する場合は、完全修飾名を使用する必要があります。

Type myType1 = Type.GetType("MyType, MyNameSpace", true, true);

試してみてください

于 2012-05-22T18:46:57.257 に答える
0

Assembly.Load メソッドを介してアセンブリをロードし、すべてを列挙する (GetTypes()) か、アセンブリから特定の型を取得することもできます。Assemblyクラスを見てください

于 2012-05-22T19:00:26.747 に答える