Re: Com+ , Reference и AppDomain
От: mrozov  
Дата: 13.08.07 13:40
Оценка:
Здравствуйте, AThe, Вы писали:

AT>Есть Com+ компонент, написанный на C#. В его проект добавлены refы на другие библиотеки.

AT>Тесты (создается тестовый проект, создающий объект):
AT>1) Объект не является COM+ компонентом — все работает на ура.
AT>2) Объект является COM+ компонентом — регистрируется в папке Debug тестового проекта. Вызов AppDomain.CreateInstance(MyAsmStr,MyTypeStr) возвращает не то, что в первом тесте. А именно, объект MarshalByRefObject не может быть приведен к типу MyType. При создании всех AppDomain — ApplicationBase == DebugFolder тестового проекта.
AT>3) Зарегистрированный компонент запускается при помощи Службы компонентов — вообще не может найти не один ref, т.к. запускается из %System%.

AT>Вопросы:

AT>1) почему поведение AppDomain.CreateInstaince различно в первом и втором случае?
AT>2) как разрешить зависимости в третьем случае без помещения сборок в ГАК?

Давненько я этим не занимался, отвечаю по памяти.

1. У тебя в данном случае (по меньшей мере, если речь идет о com-приложении, а не библиотеке) и должен быть MarshalByRefObject. Приводиться он должен к интерфейсу (ты ведь определил интерфейс и назначил ему Guid, правда?).
2. В настройках COM+ приложения есть рабочая папка, которую можно задать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.