Re[2]: Загрузка dll
От: Аноним  
Дата: 18.02.07 14:50
Оценка:
Здравствуйте, AndroiT, Вы писали:

AT>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте! Нужна помощь со следующим...


А>>В одной части программы есть код загружающий dll. Загрузка проходит нормально!

А>>
А>>Assembly.LoadFrom("My.dll");
А>>


А>>Потом же в другой части кода

А>>
А>>Assembly a = Assembly.GetAssembly(Type.GetType("Тип_определенный_в_My.dll"));
А>>

А>>Выдает ошибку! Type.GetType()-не может найти нужный тип, определенный в загруженной до этого dll.
А>>в чем дело??? не могу понять!
А>>Вообщем мне необходимо сначала каким-то образом динамически загрузить dll, а потом
А>>чтобы сработала строчка типа
А>>
А>>Assembly a = Assembly.GetAssembly(Type.GetType("Тип_определенный_в_dll"));
А>>

А>>каким образом это можно сделать??
А>>Заранее очень благодарен

AT>Если я не ошибаюсь надо сначала создать объект ч/з CreateInstance:

AT> object x = a.CreateInstance("Тип");
AT>а уже после этого определять тип
AT> Type t = x.GetType();
AT>и использовать его.
AT>А вообще для чего вы это хотите применить?

дело вот в чем... есть dll инкапсулирующая в себе логику приема данных с порта и их десериализацию... причем идет десириализация объектов, тип которых находиться в другой сборке(сборка тоже может быть любая и поэтому статическая привязка сборки отпадает) и неизвестен наперед. Таким образом, перед десериализацией мне необходимо загрузить сборку в домен, а затем уже пускать процесс десериализации!
Вот я и пытаюсь сначала сделать

Assembly.LoadFrom(путь_к_сборке);


а затем уже десериализовать объекты с типами, определенными в сборке-и тут, то и происходит ошибка
Метод
IFormatter.Deserialize(Stream stream);

пытается найти нужную сборку вызовом Assembly.GetAssembly()-не находит ее и вылетает исключение...
Вот такая вот проблема! Как загрузить динамически сборку, чтобы IFormatter.Deserialize(Stream stream) десериализовывал типы определенные в ней
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.