Pergunta

Em .NET Remoting, Activator.GetObject método tem um Estado parâmetro. Qual é o propósito desta Estado param? Posso recuperar seu valor a partir do lado do servidor?

MDSN não ajudou muito.

O que eu gostaria de fazer:
do lado do cliente:
ChannelServices.RegisterChannel(new TcpChannel(0));
object obj = Activator.GetObject(typeof(MyObj), "tcp://serverName:1234/RemoteObj", "myCustomData");

do lado do servidor:
Tenha acesso à string "myCustomData".

Foi útil?

Solução

Eu não sou inteiramente certo o que a finalidade deste campo estado é, mas parece ser um valor específico canal que não é de uso para seu código. Ao traçar através Activator.GetObject no refletor você vai notar que, eventualmente, é passado para IChannelSender.CreateMessageSink. O uso destes dados é a aplicação específica.

Uma rápida pesquisa revelou apenas um implementador se IChannelSender: CrossAppDomainChannel. Nesta implementação particular, o parâmetro de estado só é usado se for de um tipo particular: CrossAppDomainData. Esta é uma classe interna que não é acessível para o seu programa e, portanto, é de nenhum uso.

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