2010-07-20 6 views
3

J'utilise ChannelFactory pour créer un proxy au moment de l'exécution pour un service WCF. Je voudrais utiliser le projet DynamicProxy Castle pour créer un proxy dynamique au-dessus du proxy WCF afin que je puisse intercepter des appels et faire une usurpation d'identité.Comment créer un DynamicProxy pour un proxy WCF généré par ChannelFactory <T>?

Je reçois une erreur lorsque je tente ce que ... le message d'erreur est:

type « ce » ne peut pas être une interface elle-même.

Mon code est ce (où T est une interface de contrat de service):

var generator = new ProxyGenerator(); 

return (T)generator.CreateInterfaceProxyWithTarget(typeof(T), channel, 
    new[] { new ImpersonationInterceptor() }); 

Le problème doit avoir à voir avec le fait que le proxy de service généré par ChannelFactory est généré lors de l'exécution, mais il est Y at-il un moyen de contourner ce problème?

Répondre

0

Oui - il existe - utilisez WCF Facility, il remplace le proxy WCF par CastlePro DynamicProxy. Le problème ici, c'est que vous essayez de construire un proxy au-dessus d'un proxy, et que les proxy distants ont des comportements spécifiques, dont le résultat est l'erreur que vous obtenez.

+0

Cela ne semble pas aider avec mon problème. Est-ce que je manque quelque chose? Cela semble être pour le service, pas pour le client. –

+0

C'est pour les deux .. –

+0

pouvez-vous montrer un exemple montrant une solution au problème original? –

Questions connexes