Динамически загружать тип из внешней сборки - PullRequest
5 голосов
/ 28 марта 2010

Как из управляемого кода как загрузить управляемый тип из другой сборки во время выполнения, если в вызывающем коде нет статической ссылки на сборку?

Для пояснения, скажем, у меня есть класс Lib в Lib.cs, скомпилированный в Lib.dll. Я хочу написать класс Foo в отдельной сборке под названием Foo.dll, которая не имеет статической ссылки на Lib.dll, но вместо этого загружает Lib.dll, а затем отражает наличие класса Lib и затем вызывает метод на нем.

Извините за такой очевидный вопрос о Reflection. Я полагаю, что гораздо меньше времени потребуется, чтобы получить ответ на форуме, чтобы прочитать несколько статей.

1 Ответ

5 голосов
/ 28 марта 2010

Вот короткий фрагмент:

Assembly assembly = Assembly.LoadFile("Lib.dll");
ILib lib = (ILib)assembly.CreateInstance("Lib");
lib.doSomething();

Конечно, класс Lib должен реализовывать интерфейс ILib, который должен быть доступен как из Foo.dll, так и из Lib.dll. Так вы добьетесь абстракции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...