2013-06-25 2 views
0

Я имею в виду этупрограммно добавить shell32.dll в качестве ссылки

Can I load a .NET assembly at runtime and instantiate a type knowing only the name?

пытается добавить shell32.dll в качестве ссылки, вот код

string assemblyName = "Interop.Shell32.dll"; 
    string assemblyPath = HttpContext.Current.Server.MapPath(assemblyName); 
    Assembly assembly = Assembly.LoadFrom(assemblyPath); 
    Type T = assembly.GetType("ShellClass"); 
    ShellClass instance = (ShellClass)Activator.CreateInstance(T); 
    ShellClass sh = new ShellClass(); 

Приведенный выше код содержит ошибки:

The type or namespace name 'ShellClass' could not be found (are you missing a using directive or an assembly reference?)

Также есть пробная версия

Assembly assembly = Assembly.LoadFrom("Interop.Shell32.dll"); 
Type type = assembly.GetType("ShellClass"); 
object ShellClass = Activator.CreateInstance(type); 

Ошибка:

The type or namespace name 'ShellClass' could not be found

Я не очень понимаю, как добавить ссылку программно. В чем проблема вышеуказанного кода?

ответ

0

Вы должны включать пространство имен класса в методе GetType:

assembly.GetType("Shell32.ShellClass");