J'utilise le Enterprise Library Validation Application Block pour mon service WCF. Tout va bien, et les consommateurs .Net peuvent attraper l'exception FaultException<ValidationFault>
pour obtenir une collection d'erreurs d'affaires lisible par l'homme. Cependant, il ne semble pas aussi bien pour les consommateurs non-Net, en particulier ceux qui vont regarder le message SOAP brut. Le texte SOAP Reason est toujours "Le créateur de cette erreur n'a pas spécifié de raison" Ceci n'est pas très utile car est une raison, elle est spécifiée sous l'élément <Detail>
, comme indiqué dans l'exemple Message d'erreur au dessous de.WCF EntLib Validation - Changer le défaut par défaut SOAP Raison text
Est-il possible de changer le texte « Le créateur de cette faute n'a pas précisé la raison. » quelque chose de plus utile comme « Voir ValidationFault Détails »?
<s:Body>
<s:Fault>
<s:Code>
<s:Value>s:Sender</s:Value>
</s:Code>
<s:Reason>
<s:Text xml:lang="en-GB">The creator of this fault did not specify a Reason.</s:Text>
</s:Reason>
<s:Detail>
<ValidationFault xmlns="http://www.microsoft.com/practices/EnterpriseLibrary/2007/01/wcf/validation" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Details xmlns:b="http://schemas.datacontract.org/2004/07/Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WCF">
<b:ValidationDetail>
<b:Key i:nil="true"/>
<b:Message>Value Validator</b:Message>
<b:Tag>request</b:Tag>
</b:ValidationDetail>
</Details>
</ValidationFault>
</s:Detail>
</s:Fault>
</s:Body>
J'ai le même problème. Je pense qu'il n'y a aucun moyen de le faire en utilisant le comportement de validation de la bibliothèque d'entreprise pour WCF. – softveda
ouais, j'ai enquêté il y a un moment avant les jours de StackOverflow et c'était la conclusion à laquelle je suis arrivé, mais j'ai pensé que je posterais ici pour vérifier! –