У меня есть отдельная библиотека (Controls.DLL) с моими пользовательскими элементами управления.У меня есть другая библиотека (Model.dll) с моим кодом доступа к данным.
Некоторым элементам управления необходим доступ к данным.Я бы хотел, чтобы эти библиотеки были слабо связаны.По сути, я хотел бы получить доступ к данным без ссылки на Model.dll
Как правильно это сделать?Естественно, я думаю, что Binding - это путь.Но это не просто привязка к данным, мне также нужно выполнять действия с моей моделью (получение данных, разбиение на страницы, фильтрация).И мне нужно изучить метаданные, которые содержит моя модель.
Например, у меня есть класс Customer со свойствами, такими как «FirstName», «LastName» и т. Д. Но я хочу, чтобы они отображались внутри моего элемента управления с такими надписями, как «Имя», «Фамилия».Это примитивный пример, но он как бы показывает мою точку зрения.
Моя другая идея заключалась в том, чтобы иметь «провайдеров» на стороне данных, которые выплевывали бы XML, а на стороне контроля я буду анализировать этот XML.Но как мне перейти к методам?
Другая идея - идти с отражением.Таким образом, я бы просто передал объект в Control.Но я не так хорош в рефлексии и не уверен, что смогу достичь таких вещей, как: получение свойств / атрибутов.Получение и выполнение методов?Это звучит как идеальная вещь для кодирования с интерфейсами, но интерфейс должен где-то жить, и поэтому что-то должно ссылаться на что-то.
Итак, каков лучший способ свободно кодировать, как это?