Nehmen Sie zum Beispiel ein Projekt mit 10 Diensten und 20 Methoden für jeden Dienst.WCF: Gleicher Fehler bei vielen Methoden
Alle Dienste erben von einem Basisdienste, die eine Sicherheitsüberprüfung hat. Das erste, was jede Methode tut, ist einen Anruf bei der Sicherheitsprüfung zu machen. Dies löst eine Sicherheitsausnahme aus, wenn ein Problem auftritt.
Frage ist: Muss ich einen FaultContract für jede Methode (OperationContract) angeben, oder kann ich es einmal in einer zentralen Definition tun?
Sicher würden Sie zustimmen, dass es möglich sein sollte, übergreifende Bedenken wie Sicherheit in einer orthogonalen Weise zu implementieren. Es erscheint mir merkwürdig, dass ich einen netten 'ServiceAuthorizationManager' entkoppeln kann, aber dann muss ich meine Verträge mit repetitivem Müll überstreuen, wenn ich einen benutzerdefinierten Sicherheitsfehler auslösen will. –
Ich stimme zu, ich bin auf der Suche nach einer Methode, um den sich wiederholenden Müll automatisch zu tun. – joelsand
Sie können einige T4 schreiben, um alle Ihre Verträge aus einer XML-Datei (oder einer anderen Datei) zu generieren, und haben Ihre eigene Logik, um globale Fehler zu definieren. Es gibt auch das Projekt [WSSF] (http://servicefactory.codeplex.com/) auf Codeplex, das einen Designer für Ihre Verträge verwendet und Client/Server-Code generiert (es ist ein ziemlich schweres Tool). – SandRock