Мне нужно создать такой метод:
object GetPropertyValue(object entity, string databaseColumnName, int index);
, который будет принимать любую сущность, имя столбца, которое представляется как свойство в классе сущности, и необязательный индекс, который используется, если столбец БД находится внутри свойства коллекции по какому-либо индексу.
Например:
Сущность поля имеет свойство - скважины, то есть набор сущностей скважин.
и мне нужно получить имя второй скважины из коллекции Уэллса.
Дело в том, что я ничего не знаю о сущности поля, у меня есть только интерфейс - IEntity, и я знаю, что это объект поля (не экземпляр поля, а поле бизнес-объекта, распознаваемое конечным пользователем).
Поэтому я вызываю GetPropertyValue (IEntity, "WELL_NAME", 1), чтобы получить необходимое значение.
С отражением я могу получить экземпляр Field, просмотреть все его свойства, свойства отношений и найти мое свойство WellName, после чего я могу получить свойство Wells и вызвать Field.Wells [1] .WellName - все через отражение ....
Подход отстой :(
Пожалуйста, помогите мне лучше написать этот метод, который не повлияет на производительность.
PS: мне нужно использовать этот метод, потому что нам приходится иметь дело с очень старой унаследованной моделью домена через тот же унаследованный интерфейс: (
Спасибо, Алекс