Какой тип возвращать из метода Service при сбое - PullRequest
0 голосов
/ 13 февраля 2012

Иногда я спорил, что именно отправлять обратно, если я создаю службу WCF для клиентов, использующих мой веб-сервис.Обычно я возвращаю собственные DTO, и в этом DTO у меня есть свойство Success (bool), а также пара строк свойств для ошибок, которые можно проверить, если Success имеет значение false.

Но клиент должен знать (тесно связан) об этом типе DTO для вызова метода, потому что он возвращает DTO типа x.

Я знаю, что хочу вернуть объект ... потому что я хочу включить флаг успеха, а также всегда предоставлять информацию в случае неудачи.Но тогда я должен вернуть какой-то тип интерфейса?

Я не совсем уверен, что лучше всего вернуть, если вы хотите, чтобы ваш сервис мог использоваться ЛЮБЫМ клиентским приложением .net.

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

Если у вас есть ошибка на стороне сервера того типа, который требует обработки вызывающей стороной, то вы должны поместить ошибку в сообщение об ошибке SOAP.

Это стандартный и предполагаемый способ передачи информации об ошибке вашему абоненту.

Передача флага успеха / неудачи является своего рода антишаблоном, так как вы заставляете своих потребителей опрашивать объект ответа, чтобы узнать, был ли сбой.

В WCF, если вы сгенерируете исключение в операции службы, WCF автоматически создаст упаковщик ошибок SOAP для вас. Это дает вам совместимый способ передачи сведений об исключительной ситуации обратно вызывающим абонентам.

1 голос
/ 13 февраля 2012

Если клиент также является приложением .NET, я бы, вероятно, просто выдал исключение.

...