Я создаю приложение с графическим интерфейсом, которое будет внешним интерфейсом для файла конфигурации XML.
Структура XML определяет набор экземпляров объекта. То есть имена типов и значения свойств, которые должны создаваться в приложении-потребителе (служба Windows).
Итак, есть три слоя:
ConfigurationObject <--> ComponentObjects <--> PropertyGrid
ConfigurationObject
сериализуется в соответствующий формат XML для службы Windows. ComponentObjects
- это те же типы, которые используются службой Windows.
Проблема, с которой я сталкиваюсь, заключается в определении наилучшего способа синхронизации всех трех слоев.
Моя первая реализация, я бы обновлял отдельные свойства, когда они были изменены. Однако этот подход не очень хорошо работал, когда мне нужно обновить сложные объекты в пользовательском интерфейсе (хотя я думаю, что я знаю, в чем проблема сейчас)
Мой текущий подход включает использование TypeConverters для преобразования между ConfigurationObject
и ComponentObjects
, который работает хорошо, пока не осознал, что моя текущая логика игнорирует BrowseableAttribute
(поскольку я просто перебираю все свойства ComponentObject
, когда преобразование в ConfigurationObject
)
Поэтому, прежде чем я потрачу больше времени на свой текущий подход, я хочу быть уверенным, что я на правильном пути. Есть ли более простой подход? Есть ли какая-то модель / модель дизайна, которую я могу использовать в такой ситуации?
Спасибо,
Karl