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!
Si desidera aggiungere un gestore prima che l'invocazione raggiunga la classe di servizio effettiva? – Kangkan
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
Ho aggiunto una risposta guardando questo. – Kangkan