Развертывание несериализуемого класса из домена приложения - PullRequest
4 голосов
/ 31 августа 2011

Поскольку не все классы, используемые в классе, который я хочу создать, являются сериализуемыми, я не могу развернуть их.

Возможно ли это?

var appdom = AppDomain.CreateDomain(amServiceable.GetType().ToString());
var objectHandle = appdom.CreateInstance(amServiceable.GetType().Assembly.FullName, 
                                         amServiceable.GetType().FullName);


var plugin = objectHandle.Unwrap() as IPlugin //throws an error. that some class in not marked serializable.

1 Ответ

5 голосов
/ 31 августа 2011

Чтобы использовать метод Unwrap для объекта, он должен быть производным от MarshalByRefObject. Если объект, которым вы хотите манипулировать, отсутствует, то единственный другой вариант - использовать другой MarshalByRefObject для манипулирования объектом в другом домене

...