Je développe une application qui expose un service WCF en utilisant le modèle Message/Réponse pour les méthodes de service. L'application utilise Unity 2.0 pour l'injection de dépendance et le bloc d'application de validation de MS Patterns & Practices. J'ai déjà eu Unity lié à WCF en utilisant un HttpModule personnalisé que j'ai récupéré sur plusieurs sites il y a quelques temps et tout fonctionne très bien.Validation des paramètres avec WCF, Unity et VAB
Dans mon interface de service que j'ai une méthode telle que: DoSomethingResponse DoSomething (Demande DoSomethingRequest)
Je peux facilement joindre VAB attribue au contrat de service pour vérifier que « demande » est jamais nulle, mais je veux aussi valider le contenu de l'objet de requête. Pour ce faire, j'injecte le validateur dans le constructeur DoSomethingRequest et inclue une propriété IsValid portée en interne qui gère l'interaction avec le validateur VAB. Malheureusement, ce constructeur n'est pas appelé car WCF désérialise l'objet et les constructeurs ne sont pas utilisés. Sans vouloir faire de l'objet requête un simple DTO par rapport à une logique métier côté serveur, est-il possible d'injecter proprement des dépendances dans un objet passé dans le service WCF en tant qu'argument?
Pas exactement. DoSomethingRequest est un DataContract. Je souhaite valider ses DataMembers avant de prendre d'autres mesures. Essentiellement, dans ma méthode de service, j'appelle request.IsValid pour déterminer si je devrais effectuer l'opération demandée. IsValid requiert une instance du validateur qui serait normalement injectée dans le constructeur. – SonOfPirate