Registrar _instances_ objeto em vez de _types_ com .NET comunicação remota?
Pergunta
Há algo que eu não estou recebendo cerca de .NET comunicação remota. Bem, duas coisas na verdade:
-
Porque é que a volta ênfase em classes que herdam MarshalByRef em vez de interfaces ala o estilo original COM (que eu gostei)?
-
Por que é que o .NET comunicação remota sempre força você a efetivamente criar algum tipo de pool de objetos em vez de permitir que você específico associado casos com um URL?
código do servidor:
RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingTypes.Server), "MyURL", WellKnownObjectMode.Singleton);
O código do cliente:
RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingTypes.Server), "MyURL", WellKnownObjectMode.Singleton);
Mas suponha que eu quero criar a instância "Servidor" me e depois é só vinculá-lo a um ponto final?
RemotingTypes.Server myInstance = new RemotingTypes.Server();
E agora? Como posso associar "myInstance" com o "MyURL" URL?
Solução
O problema com a resposta de Nickd: Eu queria saber como associar uma instância já criada com um URL, em vez de como obter .NET comunicação remota para fazer isso por mim (alguma instância que eu criei que não tem um padrão construtor, por exemplo).
Eu estava esperando que haveria alguma resposta épica explicando a "filosofia" atrás .NET comunicação remota, e por que ele está intimamente ligado ao sistema de tipo ...
O que eu já concluiu vez é simplesmente que: a) É porque .NET comunicação remota é uma porcaria. Não usá-lo b) Use WCF vez
Outras dicas
Eu não posso realmente pontos de endereços 1 e 2 como eu não tenho nenhuma experiência do COM e eu não entendo 2, mas para responder à sua pergunta final específico, se você usar a classe system.Activator, você pode fazer isso:
RemotingTypes.Server myInstance = (RemotingTypes.Server) Activator.GetObject(typeof(RemotingTypes.Server), MyUrl);
Isso significa que você tem que ligá-la no momento da construção, mas é lado todos os clientes.