Activator.GetObject - Usando o parâmetro de estado
-
06-07-2019 - |
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".
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.