Я пытался выяснить лучший способ получить ошибки проверки назад к пользовательскому интерфейсу, и я наткнулся на интерфейс IDataErrorInfo. Фантастика!
Абсолютно. Почему вы не знаете, что делаете в первую очередь? IDataErrorInfo полностью задокументирован - не то, что вам нужно «встретить» (что звучит случайно).
Реализация этого интерфейса превратит мой DTO в POCO и делают больший объект с точки зрения использования памяти. На данный момент все пользовательские элементы управления привязаны к текущим объектам DTO .
A DTO не имеет абсолютно никакого бизнеса, знающего о внутренних ошибках - он никогда больше не должен иметь внутренние ошибки. См. DTO - «Объект передачи данных», а не «Бизнес-объект». DTO - это то, что должен создать объект Business, чтобы отправить его в DataAccessLayer, и причина, по которой не должна быть проверки, - это то, что Business Object гарантирует, что ТОЛЬКО ДЕЙСТВИТЕЛЬНЫЕ ОБЪЕКТЫ СОЗДАЮТ DTO.
Btw,
превратит мой DTO в POCO
У меня есть еще одно открытие сюрприз для вас -. Ваш DTO уже ЯВЛЯЕТСЯ ПОКО. POCO - это «Обычный объект CLR», и я полагаю, что ваш DTO установлен как классы .NET, поэтому - угадайте, что, удивление, они уже являются POCO.
Что вы имеете в виду (снова что-то открыть) в том, что он превратит ваши DTO в BO.
Или есть лучший способ получить валидационные сообщения обратно в интерфейс?
Нет, не существует. Лучший способ отправить сообщения до пользовательского интерфейса - это интерфейсы, определенные UI, и это IDataErrorInfo.
Ваша проблема заключается в том, что у вас есть Хью путаница:
- Как программировать мульти многоуровневой архитектуры и построить стандартный уровень доступа к данным
- ничего не знает об условиях, которые вы используете (см вашей проблемы зная, что такое DTO, и что такое POCO).
- Таким образом, смешайте свои обязанности.
См. Ответы на POCO vs DTO для объяснения того, что вы на самом деле перепутали.
Назад к чертежной доске. Как ваш ведущий разработчик/архитектор, чтобы дать вам введение в многоуровневую архитектуру и прочитать документацию .NET.
DTO должен иметь дело с проблемами DataTransfer.
Все действующие пункты. Я отметил этот ответ правильно, исходя из того, что вы сделали. Старайтесь не быть таким абразивным dickwad в следующий раз. –