Мне нужна подсказка об этой архитектурной проблеме.
Мое приложение вызывает различные службы wcf, которые выполняют определенные задачи, возвращая список объектов модели.
Скажем, у меня есть служба, которая опрашивает запасобмениваться заголовками, возвращая List<SeTitle>
.[Чисто вымышленный пример, я читаю книгу на эту тему]
Если в одном или нескольких элементах этого списка происходит исключение, у меня есть два варианта в сервисе wcf:
- поймать исключение, зарегистрировать его и вернуть List <>, но таким образом я потеряю свидетельство всех неисправных элементов в моем приложении.
- сгенерирую исключение при первой ошибке, но таким образом яне получит никакой информации, даже если только один элемент был «неисправен».
Я хочу пойти на третий вариант, то есть я всегда буду возвращать свой Список, но с доказательством неисправностиitems.
Моя идея состоит в том, чтобы позволить всему объекту моей модели расширить простой интерфейс, такой как (простите за имена, они ужасны)
public interface IWcfReturnObject
{
public List<WarningModel> Warnings;
}
и
public class SeTitle : IWcfReturnObject
inтаким образом, каждый элемент списка может иметь связанный список предупреждений / ошибок, который будет возвращен приложению, а затем интерфейсу.
Мои вопросы:
- мой вопрос понятен ?!;)
- Как вы думаете, мое желание (получить все элементы из wcf с прикрепленными предупреждениями) архитектурно хорошо?
- Как вы думаете, существует ли лучший подход для решения этой проблемы?
Спасибо
M.
РЕДАКТИРОВАТЬ: я занимался исследованиями и смотрел на первый ответ, я думаю, что было бы полезно дать одно решение, которое я нашел в сети
Возможные решения
- Мой путь
- Войдите в систему с некоторой корреляцией и отошлите ее на бизнес-уровне, как предложил дециклон
- AggregateException