2009-06-03 8 views
2

Was ist die beste Vorgehensweise zum Erstellen von Wrapper für den WCF-Serviceaufruf? Ich denke, es ist notwendig alle Anrufe an der gleichen Stelle zu überwachen, denke ich, diese Art von Code zu verwenden, ist das richtige Idee?WCF Service Call Wrapper

RetType t = ServiceExecutionContext<IServiceChanel>.Execute(s=>s.GetServiceMethod()); 


Welche Art von Wrapper sind Sie in Ihren Enterprise-Anwendungen verwenden?
Vielen Dank!

+2

Ich denke, die meisten Leute benutzen überhaupt keine Wrapper. Bitte erläutern Sie, warum Sie sie verwenden möchten und warum Sie glauben, dass sie von jedem genutzt werden. –

+0

Ich glaube nicht, dass jeder sie verwendet, aber ich denke, es ist notwendig, alle Arten von Service-Ausnahmebehandlung und Service-Anruf-Protokollierung, zum Beispiel, an der gleichen Stelle ... nicht wahr? –

+0

Wenn es "notwendig" wäre, dann wäre es im Rahmen. Selbst wenn es im Framework wäre, könnte es nicht durch Wrapper gemacht werden. Im Ernst, hast du gesehen, dass noch jemand darüber spricht, Wrapper für alles zu erstellen? Wenn nicht, bist du der Erste. Dachten Sie, dass Sie wahrscheinlich als Erste etwas "Notwendiges" finden würden? Nach drei Jahren, dass WCF da draußen war? –

Antwort

6

WCF hat ein Modell, das Sie in der Service Call-Kette sein kann. Ich würde das verwenden, anstatt zu versuchen, jeden Serviceaufruf zu verpacken, wenn alles, was Sie zu tun versuchen, eine Protokollierung ist (was WCF bereits sehr gut macht, wenn Sie die Diagnose in der Konfigurationsdatei aktivieren) und ähnliche Dinge rund um Ihren Dienst Anrufe.

Here is a good MSDN article darüber, wie benutzerdefiniertes Verhalten für WCF-Dienste zu erstellen.

+0

Ich habe den Artikel gelesen, aber ich sah nichts in Bezug auf das Problem eines WCF-Dienstes, der eine Ausnahme zur Verfügung werfen könnte. Würden Sie einen Service Wrapper für die Handhabung dieser fehlerhaften Dispose-Implementierung empfehlen? –

+0

Wir verwenden nur Konvention. Es ist eine wohlbekannte Situation und ziemlich einfach zu debuggen. Ein Wrapper ist eine Option, aber es ist ebenso üblich, einen Wrapper zu verwenden, um Dispose in einem try catch-Block anstelle eines using-Blocks aufzurufen. nur meine .02 –

1

Wenn Sie benötigen, um Ihre eigenen Message Inspector zu schreiben.

WCF hat auch message logging builtin. Standardmäßig können Sie problemlos mit dem System.Diagnostics.XmlWriterTraceListener in einer Datei protokollieren. Wenn Sie jedoch das Protokoll an einer anderen Stelle (z. B. in einer Datenbank) schreiben müssen, könnten Sie Ihre eigene trace listener schreiben.

würde ich diesen Ansatz über eine Nachricht Inspektoren empfehlen ... Nachricht Inspektoren sind zu einfach falsch zu schreiben und Performance schaden, ohne zu wissen, was Sie tun.