System.Reflection - PullRequest
       1

System.Reflection

1 голос
/ 24 ноября 2010

В этом приложении я разработал приложение с именем AAA, которое ссылается на сборку с именем BBB. При определенных условиях я загружаю эту BBB сборку в мое приложение, используя функцию Assembly.LoadFromFile (). Теперь мне нужно получить доступ к определенным экземплярам объекта AAA в сборке BBB во время выполнения. Можно ли выполнить эту задачу? Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 24 ноября 2010

Позвольте AAA передать ссылку на объект некоторой переменной в BBB после ее загрузки.

Чтобы получить доступ к объекту ooo из BBB, вы должны предоставить BBB (возможно, косвенный)ссылка на ооо.AAA может использовать рефлексию, чтобы найти подходящую точку входа для BBB, а затем предоставить ей ooo.

0 голосов
/ 24 ноября 2010

Вы пытаетесь создать новые экземпляры своих объектов?Если это так, это должно работать:

Assembly ass = Assembly.LoadFrom("BBB.dll");
Object myObject = ass.CreateInstance("BBB.MyObject");

Обратите внимание, это предполагает, что ваш объект имеет конструктор по умолчанию - если вам нужно передать параметры в конструктор, вы можете сделать что-то вроде этого (предполагая, что конструктор принимаетстрока в качестве аргумента):

Assembly ass = Assembly.LoadFrom("BBB.dll");
Type t= ass.GetType("MyObject");
ConstructorInfo c = t.GetConstructor(new Type[]{typeof(string)});
Object myObject2 = c.Invoke(new object[] { "myParam" }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...