Registrar _instances_ objeto em vez de _types_ com .NET comunicação remota?

StackOverflow https://stackoverflow.com/questions/412760

  •  03-07-2019
  •  | 
  •  

Pergunta

Há algo que eu não estou recebendo cerca de .NET comunicação remota. Bem, duas coisas na verdade:

  1. Porque é que a volta ênfase em classes que herdam MarshalByRef em vez de interfaces ala o estilo original COM (que eu gostei)?

  2. 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?

Foi útil?

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.

Ver o meu .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top