Comunicação entre AppDomains

Estamos criando um aplicativo (WinForms, .NET 3.5) que carrega DLLs "Plugin" em um AppDomain secundário. O AppDomain secundário precisa se comunicar ocasionalmente com o primeiro (mais especificamente, chamar ou obter dados de objetos criados no AppDomain principal

Li a maior parte do material sobre o AppDomains e a comunicação entre ele

Até agora, a única solução fácil que eu vi foi herdar de MarshalByRefObject e passando um TransparentProxy no 2º AppDomain, chamando métodos no Prox

Este método tem suas desvantagens (nem sempre é possível herdar do MBRO no caso de tipos de estrutura, por exemplo, ou tipos que já herdam de outra classe, campos / classes estáticos e assim por diante

Como os pontos de comunicação atuais são bastante constantes (apenas 2-3 cenários que requerem comunicação), considerei criar um simplesMediado class com as seguintes propriedades:

Será criado no 1º AppDomain (Principal). Funcionaria apenas como um "passador de mensagens" para os objetos "Reais" criados no AppDomain principa Herdará do MBRO, e uma referência de proxy a ele será enviada para o 2º AppDomai

s métodos nesse objeto proxy seriam chamados, que por sua vez chamarão os métodos nos objetos "reais" no 1º AppDomai

Minhas perguntas -

Parece um projeto lógico? Mais importante ainda, uma classe mediadora / passadora de mensagens já existe no WCF ou em qualquer outra estrutura de comunicação? parece um conceito genérico e estou me perguntando se há algo semelhant

questionAnswers(2)

yourAnswerToTheQuestion