/ / Изключения за валидиране от WCF услуга - wcf

Изключения за валидиране от услуга на WCF - wcf

Аз бих искал някаква помощ с тази.

Искам да върна някакъв вид валидиранеизключение от моята услуга WCF, ако дадените данни за субекта не преминават бизнес логиката, но не съм сигурен, че е най-добрият начин да върна многократни неща от WCF услуга (например грешка при валидиране и списък с образувания).

Този може да е наистина прост, но дори и така, бих оценил малко помощ.

Отговори:

2 за отговор № 1

Бих ви предложил да разгледате блока за валидиране на Enterprise Library:

http://msdn.microsoft.com/en-us/library/ff648951.aspx

http://msdn.microsoft.com/en-us/library/ff648939.aspx (имайте предвид, че това е за EntLib 3.1, който е малко датиран, но дори и в EntLib 5, интеграцията с WCF работи подобно)

Използвах този подход няколко пъти за WCFвалидиране и се получава доста добре. В крайна сметка ще декорирате вашите договори за данни с атрибути за валидиране, които са част от EntLib. Това определя какви са вашите правила за валидиране. След това конфигурирате услугата си да използва WCF разширяемостта на Enterprise Library. Това е поведение на крайната точка, така че по същество това прихваща всички входящи съобщения за вашата серия, проверява дали всички дефинирани атрибути за валидиране преминават и след това изпраща съобщението към вашата услуга. Ако правилата, посочени от вашите атрибути за валидиране, не преминават, тогава поведението на крайната точка връща съобщение за грешка, което съдържа подробности за всички неуспехи на валидирането. Така че, ако един атрибут не премине, ще има едно съобщение. Ако три атрибута не са минали, имате три съобщения и т.н. Всяко съобщение за грешка при валидиране посочва това, което свойството не е преминало валидиране. Хубавото на интеграцията на WCF за валидиране на EntLib е, че съобщенията за неизправности, използвани за грешки при валидиране, са силно типични и достъпни в WSDL на вашата услуга. Това означава, че вашите клиенти могат лесно да изконсумират тези грешки и да действат по тях по подходящ начин.

Ако се чувствате като Enterprise Library е малкопрекалено тежък за вашите нужди, тогава със сигурност бихте могли да прехвърлите вашите собствени проверки. Вероятно бихте искали договорите за данни, върнати от вашите операции за обслужване, да включват нещо като списък, който съдържа съобщения за валидиране.