Кучеручная

Фиктивные свойства объектов через Reflection в .NET

content, lj

Задача: В приложении любые сущности описываются одним классом. BEntity.

public class BEntity : BindingList, ITypedList

Свойства сущностей описаны в экземплярах BEntityField

Что требуется: получить возможность DataBinding`а BEntityCollection
на DataGrid.

В чем проблема: Когда коллекция объектов посредством BindingList`а рассматривается
как источник данных в качестве полей используются свойства объектов.
В нашем случае свойства необходимо брать из принадлежащей объекту коллекции.

Метод решения: подставить в runtime через reflection вместо настоящих свойств
объекта "фиктивные" свойства, ведущие к экземплярам BEntityField.
Т.е. каждый BEntityField в объекте BEntity будет рассматриваться как
property с именем и значением.

Что делаем

Comments are closed.