Работа с объектов в ином AppDomain
От: Nikolay_P_I  
Дата: 18.09.06 14:01
Оценка:
Для борьбы с нечисткой за собой ресурсов одной .dll hешил попробовать исполнять ее в ином домене.

Из .dll наружу смотрит 1 объект-враппер мной написанный со свойствами Init(), Run(), Close(). Внутри объекта прочие объекты (в том числе несериализуемые) и сложная логика.

При AppDomain.CreateInstanceFromAndUnwrap() была ругань про отсутствие [Serialize] у моего объекта.

Вопрос: Что именно должно сериализоваться у моего враппера для нормальной работы ?

Я предполагаю, что сериализуемости самого враппера (но не его private-членов) достаточно для создания прокси и нормальной работы ?
Re: Работа с объектов в ином AppDomain
От: desco США http://v2matveev.blogspot.com
Дата: 18.09.06 14:07
Оценка: 1 (1)
Здравствуйте, Nikolay_P_I, Вы писали:

N_P>Для борьбы с нечисткой за собой ресурсов одной .dll hешил попробовать исполнять ее в ином домене.


N_P>Из .dll наружу смотрит 1 объект-враппер мной написанный со свойствами Init(), Run(), Close(). Внутри объекта прочие объекты (в том числе несериализуемые) и сложная логика.


N_P>При AppDomain.CreateInstanceFromAndUnwrap() была ругань про отсутствие [Serialize] у моего объекта.


N_P>Вопрос: Что именно должно сериализоваться у моего враппера для нормальной работы ?


N_P>Я предполагаю, что сериализуемости самого враппера (но не его private-членов) достаточно для создания прокси и нормальной работы ?



если вы сделаете враппер сериализуемым, то после вызова CreateInstanceFromAndUnwrap() получите в основном домене его точную копию, вызовы методов которой никак не скажутся на обьекте в другом домене . В вашем случае, ИМХО, враппер должен быть пронаследован от MarshalByRefObject. В этом случае в результате CreateInstanceFromAndUnwrap() в основном домене будет создан прокси для доступа к удаленному обьекту
Re: Работа с объектов в ином AppDomain
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 23.09.06 07:47
Оценка: +1
Здравствуйте, Nikolay_P_I, Вы писали:

N_P>Для борьбы с нечисткой за собой ресурсов одной .dll hешил попробовать исполнять ее в ином домене.


Домены это чисто управляемая конструкция. Поэтому изоляция обеспечивается исключительно для управляемого кода. Чистке ресурсов домен не поможет.
... << RSDN@Home 1.2.0 alpha rev. 646 on Windows XP 5.1.2600.131072>>
AVK Blog
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.