Re[6]: Com+ , Reference и AppDomain
От: AThe  
Дата: 15.08.07 10:27
Оценка:
Здравствуйте, mrozov, Вы писали:

M>Хм...

M>Проблема проявляется только при создании объекта в другом домене?

Оказалось, что нет. Был написан еще тест в котором просто выполняется:
      ReferenceClass refer = new ReferenceClass();
      refer.Init();

Говорит : Could not load file or assembly 'Reference, Version=1.0.0.0, Culture=neutral, PublicKeyToken=259e45bab0c62d86' or one of its dependencies. Не удается найти указанный файл.

M>Я правильно понимаю — просто ReferenceClass виден и его можно создать, но вы реализуете систему плагинов.


Получается, что не виден.

M>Код в Test4 показывает, что с получением адреса подключаемой dll вы справляетесь успешно, но полученная сборка с точки зрения runtime отличается от той, с которой запущен проект?

Если я правмльно понимаю, то происходит во что:
1) проект выполняет
ComPlusComponentClass c = new ComPlusComponentClass();

2) из директории System32 запускается dllhost, который создает outproc компонент.
3) в статическом конструкторе компонента создается домен, в котором создается объект класса ReferenceClass и возвращается в домен компонента, который не может найти сборку Reference для приведения типа, поэтому приводит объект к MarshalByRefObject.

M>Может, стоит под отладчиком зайти и посмотреть, что там происходит?

Подтверждается вышесказанное: компонент не видит сборку Reference.dll в рантайме.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.