2011-11-22 7 views
5

Ho un'applicazione client client & che comunica utilizzando WCF. Per aggiungere alcune informazioni di sessione personalizzate a ciascuna intestazione del messaggio WCF ho avvolto il canale WCF del client in una classe "ClientChannelProxy" e ho utilizzato l'estensione Unity Interception per aggiungere le mie informazioni di intestazione personalizzate utilizzando aspetti.Unity - Intercettazione per una classe di servizio WCF?

IUnityContainer container = new UnityContainer(); 
container.AddNewExtension<Interception>(); 
container.RegisterType<IClientService, ClientServiceProxy>(); 
container.Configure<Interception>().SetInterceptorFor<IClientService>(new 
TransparentProxyInterceptor()); 

Questo funziona bene per il cliente dato che posso facilmente configurare il contenitore dell'unità e l'intercettazione utilizzando il codice mostrato sopra.

Ma come impostare l'unità e l'intercettazione sul lato server? Il mio servizio WCF è configurato in un file .SVC, non ho alcuna possibilità di configurare l'intercettazione e di eseguire i miei aspetti.

<%@ ServiceHost Language="C#" Debug="true" Service="Test.ClientService" %> 
<!-- How to configure Unity Interception for this WCF-Service ? --> 

Non sarebbe bello se qualcuno potesse aiutarmi a farlo funzionare. Grazie!

+0

Si desidera aggiungere un gestore prima che l'invocazione raggiunga la classe di servizio effettiva? – Kangkan

+0

Esatto. Sul client aggiungo alcune informazioni principali all'intestazione del messaggio WCF. Il server dovrebbe leggere queste informazioni di intestazione e creare un oggetto principale personalizzato bisore chiamato la classe di servizio effettiva. – Alexander

+0

Ho aggiunto una risposta guardando questo. – Kangkan

risposta