2017-01-15 11 views
-1

DLLにReferencesを追加せずにDLLファイルでメソッドを呼び出そうとしましたが、ファイルをスローするだけです。しかし、私はDLLのタイプ(メインクラス)を取得することはできません。私は方法がある中で名前空間とクラスを知っている私のコードをここに:。アセンブリのGetTypeは毎回NULLです

private Type GetMainClass() 
{ 
     return assembly.GetType(GetCombineContents().MainClass); 
} 

方法は、すべての時間はnullを返します。変数アセンブリでDLLアセンブリ

UPDATE

がMainClass =「TestDLL.MainClass」TestDLLは、DLLの名前空間ですとMainClassはMainClass GetCombineContentsは、いくつかの詳細に存在してCombineFileContentsと呼ばれるオブジェクトが返され含まれてい著者、名前、バージョン、およびDLLの名前空間と1でMainClassようなDLL(変数:MainClass)

UPDATE 2

public class MainClass : Base 
{ 
    public override void LoadHook() 
    { 
     Console.WriteLine("Dll was loaded!"); 
    } 
} 
+1

'.MainClass'の値は何ですか?見つけようとしている実際のタイプの名前は何ですか?タイプは公開されていますか? – cubrr

+1

'GetCombineContents'とは何ですか? – esiprogrammer

+0

私はあなたが望むすべてを加えました –

答えて

2

あなたは、このようなアセンブリ名を追加する必要があります:あいまいさを避けるためか、アセンブリがGACに配置されている場合、あなたは、このようなように、完全修飾アセンブリ名を提供する必要があります

Type.GetType("MyProject.Domain.Model." + myClassName + ", AssemblyName"); 

を:

Type.GetType("System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"); 
+0

しかし私はそれを行う場所からアセンブリを持っています。 –

+0

とは何ですか?それを指定する必要があります。私はあなたのポイントを取得していない –

関連する問題