WCF Обработка исключений с помощью пакетных операций - PullRequest
0 голосов
/ 10 декабря 2010

Мне нужна подсказка об этой архитектурной проблеме.

Мое приложение вызывает различные службы wcf, которые выполняют определенные задачи, возвращая список объектов модели.

Скажем, у меня есть служба, которая опрашивает запасобмениваться заголовками, возвращая List<SeTitle>.[Чисто вымышленный пример, я читаю книгу на эту тему]

Если в одном или нескольких элементах этого списка происходит исключение, у меня есть два варианта в сервисе wcf:

  • поймать исключение, зарегистрировать его и вернуть List <>, но таким образом я потеряю свидетельство всех неисправных элементов в моем приложении.
  • сгенерирую исключение при первой ошибке, но таким образом яне получит никакой информации, даже если только один элемент был «неисправен».

Я хочу пойти на третий вариант, то есть я всегда буду возвращать свой Список, но с доказательством неисправностиitems.

Моя идея состоит в том, чтобы позволить всему объекту моей модели расширить простой интерфейс, такой как (простите за имена, они ужасны)

public interface IWcfReturnObject
{
    public List<WarningModel> Warnings;
}

и

public class SeTitle : IWcfReturnObject

inтаким образом, каждый элемент списка может иметь связанный список предупреждений / ошибок, который будет возвращен приложению, а затем интерфейсу.

Мои вопросы:

  • мой вопрос понятен ?!;)
  • Как вы думаете, мое желание (получить все элементы из wcf с прикрепленными предупреждениями) архитектурно хорошо?
  • Как вы думаете, существует ли лучший подход для решения этой проблемы?

Спасибо

M.

РЕДАКТИРОВАТЬ: я занимался исследованиями и смотрел на первый ответ, я думаю, что было бы полезно дать одно решение, которое я нашел в сети

Возможные решения

  1. Мой путь
  2. Войдите в систему с некоторой корреляцией и отошлите ее на бизнес-уровне, как предложил дециклон
  3. AggregateException

1 Ответ

2 голосов
/ 10 декабря 2010

Я думаю, что вы должны регистрировать свои исключения / ошибки / предупреждения вместо того, чтобы отправлять их вместе с результатами.Вы всегда можете обратиться к журналу и, возможно, создать интерфейс для просмотра журнала ошибок.Но общие данные результатов не следует смешивать с данными исключений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...