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º AppDomais 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