Re: Непонятная штука с reflection
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.09.05 11:52
Оценка: 1 (1)
Здравствуйте, fspirit, Вы писали:

F>Загружаю сборку, нахожу там тип PACreator, по GetType("PACreator"). Тип найден. Теперь пытаюсь создать объект этого типа (PACreator) Activator.CreateInstance(type), где type, то, что вернул GetType. Exception: Type cast is not valid. Объясните, пожалуйста, в чем дело?


А какой смысл создавать через Activator.CreateInstance известный тип? Если тип известен, создавай его через new. В обратом случае ты просто не сможешь его привести, так как тип будет тебе не доступен.

Если тебе нужно иметь возможность загружать некоторый тип извне и использовать его без динамических вызовов, то у тебя есть два пути.
1. Подключиться к нужным методам через делегаты.
2. Описать в своей сборке интерфейс, подключить ссылку на эту сборку в ту сборку которая будет загружаться динамически и при создании экземляра класса из динамической сборки приводить его к типу этого интерфейса.

Вот здесь можно найти пример где динамически создается сборка. Для связи с ней там как раз используется интерфейс.
... << RSDN@Home 1.2.0 alpha rev. 611>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.