2010-12-10 2 views
0

Мне нужен намек на эту архитектурную проблему.WCF Обработка исключений с пакетными операциями

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

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

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

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

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

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

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

и

public class SeTitle : IWcfReturnObject 

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

Мои вопросы:

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

Благодаря

М.

EDIT: Я проводил исследование и глядя на первый ответ, который я думаю, что это полезно, чтобы дать одно решение, которое я нашел в сети

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

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

ответ

2

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

+1

Я вижу вашу точку зрения.Тем не менее я считаю, что это общая потребность, которая может быть решена. Я редактирую свой вопрос, чтобы уточнить свою точку зрения. – Mauro 2010-12-10 09:35:48

Смежные вопросы