Вы можете создать второй 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, который маршализирует вызовы реального экземпляра в другом домене приложения.