Связь между доменами приложений - PullRequest
0 голосов
/ 07 декабря 2011

Есть ли способ поделиться интерфейсом через границы AppDomain?То есть можно ли ссылаться на экземпляр в другом домене приложения в моем процессе, используя общий интерфейс?Я знаю, что можно использовать WCF с именованными каналами, но мне интересно, есть ли более прямой (и более простой) способ общения объектно-ориентированным способом.

1 Ответ

2 голосов
/ 07 декабря 2011

Вы можете создать второй AppDomain и передать объект MarshalByRef (предположительно, который наследует ваш интерфейс) через границу AppDomain.Вот простой пример:

http://msdn.microsoft.com/en-us/library/3c4f1xde.aspx

Итак, в примере:

    AppDomain ad = AppDomain.CreateDomain("New domain");
    Worker remoteWorker = (Worker) ad.CreateInstanceAndUnwrap(
        Assembly.GetExecutingAssembly().FullName,
        "Worker");        

remoteWorker является экземпляром в «Новом домене»Переменная remoteWorker в вызывающем домене на самом деле представляет собой TransparentProxy, который маршализирует вызовы реального экземпляра в другом домене приложения.

...