2017-01-15 2 views
-1

Я пытаюсь вызвать метод в DLL-файле, не добавляя DLL к ссылкам, только бросайте файл. Но я не могу получить Type (MainClass) библиотеки DLL. Я знаю, что пространство имен и класс, где метод находится здесь мой код:.C# - Assembly GetType is everytime null

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

Метод возвращает каждый раз, когда нуль. В переменной сборки содержит DLL ассамблею

UPDATE

MainClass = «TestDLL.MainClass» TestDLL является NameSpace из DLL и MainClass является MainClass GetCombineContents возвращает объект, называемый CombineFileContents там есть некоторые детали DLL, как автор, название, версия и пространство имен из DLL и MainClass в одном (Variable: MainClass)

UPDATE 2

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

Какова ценность '.MainClass'? Как называется фактический тип, который вы пытаетесь найти? Является ли тип публичным? – cubrr

+1

Что такое 'GetCombineContents'? – esiprogrammer

+0

Я добавил все, что вы хотите –

ответ

2

Вы должны добавить имя сборки, как это:

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

Чтобы избежать двусмысленности или, если сборка находится в GAC, вы должны предоставить полное имя сборки, как например:

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

Но у меня есть сборка, где я это делаю. –

+0

и что? Вы должны указать его. Я не понимаю –