CodeDom добавить ссылку на существующий файл - PullRequest
3 голосов
/ 06 января 2012

В visual studio я могу нажать «Ссылка»> «Добавить ссылку» и перейти к существующему файлу .dll с моего компьютера.Затем я могу использовать ссылочную DLL следующим образом:

dllNameSpace.dllClassName myReference = new dllNameSpace.dllClassName();
myReference.someVoid();

Я знаю, как добавить ссылочную сборку, используя кодировку (покажет это ниже), но фактический файл DLL не добавляется в проект, так как онэто когда сделано через Visual Studio.Опять же, мне нужно иметь возможность вызывать какую-то функцию в DLL-файле, на который я бы хотел сослаться.

Что я сейчас делаю:

            // Configure a CompilerParameters that links the system.dll and produces the specified executable file.
            string[] referenceAssemblies = { 
                                            "System.dll", 
                                            "System.Drawing.dll", 
                                            "System.Windows.Forms.dll", 
                                            "System.Data.dll",
                                            "System.Xml.dll",
                                            "System.Management.dll",
Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\myDllFile.dll"
                                           };

            CompilerParameters cp = new CompilerParameters(referenceAssemblies, exeFile, false);

Я предполагаю, что мне нужно будет сделать что-то другое , чтобы CodeDom добавил dll в выходной исполняемый файл.Что еще нужно сделать здесь?

Спасибо за помощь всем!

1 Ответ

0 голосов
/ 06 января 2012

Следующий код может помочь вам загрузить сборку и вызвать метод.

        Assembly asmbly = Assembly.LoadFile("assembly.test.dll");
        var myclass = asmbly.GetType("MyClass"); // use FullName i.e. Namespace.Classname
        var myobj = Activator.CreateInstance(myclass);
        myclass.GetMethod("MyMethod").Invoke(myobj,new object[]{"param1","param2"});
...