Нужно ли переопределять MarshalByRefObject.InitializeLifetimeService при работе с плагинами?

Есть у меня такая штука: https://github.com/Modus-Exciter/RW.Ring/blob/master/source/Notung/Services/OperationLauncherProxy.cs

Она позволяет запускать задачи с отображением прогресса операции в других доменах. Она работает, но я не уверен, что две обёртки над задачей, унаследованные от MarshalByRefObject - это оптимальное решение. Возможно, это можно оптимизировать, переопределив метод InitializeLifetimeService. Возможно, переопределив ещё и CreateObjRef, тоже можно сделать более элегантное решение.

Но нужно ли это делать, если это у меня случай не распределённого приложения, а просто несколько доменов в одном процессе? В книгах по .NET Remoting обычно все эти вопросы разбираются, когда речь идёт о клиент-серверной архитектуре, но это вроде как устаревшая технология, однако для взаимодействия двух доменов приложения всё равно ничего другого нет. Точнее, есть System.AddIn, но судя по тому, что написано в документации, использовать этот оторванный от жизни набор абстракций не стоит.

А с лизингом и спонсорами всё понятно, кроме одного: применимо ли это в локальных приложениях, или только в распределённых?


Ответы (0 шт):