2016-07-21 6 views
1

war Meine Frage ist: Ist es möglich zu wissen, welcher Vertrag in einem Mehrfachvertragsdienst aufgerufen wurde? In diesem Fall im Konstruktor.Identifizieren Sie, auf welchem ​​Vertrag ein WCF-Dienst mit dem Namen

Die implementierende Klasse des Dienstes ist wie folgt:

public class Service : IContract1, IContract2 
{ 
    public Service() 
    { 
     //Identify if constructor wass called from IContract1 or IContract2 
    } 
} 

Vielen Dank im Voraus!

+2

nichts „genannt“ wird von einer Schnittstelle, eine Schnittstelle definiert nur einen Vertrag, der die implementierende Klasse folgen muß. Es braucht nicht einmal explizit einen Konstruktor. – Jamiec

Antwort

1

Ich denke, was Sie implementieren möchten, ist ein WCF Message Inspector. Ein MessageInspector ist ein "Nachrichtenfilter", der die Nachrichten, die in die Service-Layer-Infrastruktur ein- oder ausgehen, abfangen und überprüfen kann.

Auf dem Server würden Sie die IDispatchMessageInspector Interface implementieren.

hier ein ziemlich gutes Beispiel dafür ist:

http://www.aspnet4you.com/wcf/index.php/2013/01/30/message-interception-auditing-and-logging-at-wcf-pipeline/

+0

Danke, das sind gute Beispiele. Es sollte funktionieren. –