Мне нужен намек на эту архитектурную проблему.WCF Обработка исключений с пакетными операциями
Мое приложение вызывает различные службы wcf, которые выполняют определенные задачи, возвращая список объектов модели.
Скажите, у меня есть услуга, которая проверяет названия биржей, возвращая List<SeTitle>
. [Чисто вымышленный пример, я читаю книгу на эту тему]
Если исключение происходит в одном или нескольких элементов этого списка у меня есть два варианта в сервисе ФОС:
- поймать исключение, запишите его и верните список <>, но таким образом я потеряю доказательства всех ошибочных элементов в моем приложении.
- выдает исключение при первой ошибке, но таким образом я не получу никакой информации, даже если только один элемент был «неисправным».
Моей волей является переход на третий вариант, что означает, что я всегда верну свой список, но с доказательством неисправности предметов.
Моя идея заключается в том, чтобы вся моя модель объекта расширить простой интерфейс, как (простите имена, они ужасно)
public interface IWcfReturnObject
{
public List<WarningModel> Warnings;
}
и
public class SeTitle : IWcfReturnObject
в таким образом, каждый элемент список может иметь связанный Список предупреждений/ошибок, которые будут возвращены в приложение, а затем в интерфейс.
Мои вопросы:
- Является ли мой вопрос ясно понимать ?! ;)
- Как вы думаете, мое желание (получить весь элемент из wcf с прилагаемыми предупреждениями) является архитектурно хорошим?
- Считаете ли вы, что существует лучший подход к решению этой проблемы?
Благодаря
М.
EDIT: Я проводил исследование и глядя на первый ответ, который я думаю, что это полезно, чтобы дать одно решение, которое я нашел в сети
Возможные решения
- Мой путь
- Журнал с некоторой корреляцией a й передать его на бизнес-уровне, как decyclone предложил
- AggregateException
Я вижу вашу точку зрения.Тем не менее я считаю, что это общая потребность, которая может быть решена. Я редактирую свой вопрос, чтобы уточнить свою точку зрения. – Mauro 2010-12-10 09:35:48