2009-10-27 23 views
3

In .NET Remoting, La méthode Activator.GetObject possède un état état. Quel est le but de cet état param? Puis-je récupérer sa valeur du côté serveur?Activator.GetObject - Utilisation du paramètre d'état

mdsn n'a pas aidé beaucoup.

Ce que je voudrais faire:
côté client:
ChannelServices.RegisterChannel(new TcpChannel(0));
object obj = Activator.GetObject(typeof(MyObj), "tcp://serverName:1234/RemoteObj", "myCustomData");

côté serveur:
Consultez la chaîne "myCustomData".

Répondre

2

Je ne suis pas entièrement sûr de l'objectif de ce champ d'état, mais il semble que ce soit une valeur spécifique au canal qui n'est pas utile à votre code. En parcourant Activator.GetObject dans Reflector vous remarquerez qu'il finit par être passé à IChannelSender.CreateMessageSink. L'utilisation de ces données est spécifique à l'implémentation. Une recherche rapide n'a révélé qu'un seul implémenteur si IChannelSender: CrossAppDomainChannel. Dans cette implémentation particulière, le paramètre d'état n'est utilisé que s'il est d'un type particulier: CrossAppDomainData. C'est une classe interne qui n'est pas accessible à votre programme et qui est donc inutile.