В продолжение темы использования лямбда-выражений для указания имени свойства в класс BaseObjectEx, по аналогии с классом BaseObjectEx<T>, были добавлены перегруженные версии методов GetPropertyValue, SetPropertyValue, GetMemberValue, SetMemberValue, GetList, SetDelayedPropertyValue, GetDelayedPropertyValue, GetCollection, принимающие в качестве параметра лямбда-выражение вместо строкового наименования свойства класса.
Эти перегруженные версии методов не используют обобщенную версию класса (как это было сделано на примере BaseObjectEx<T>) что может пригодиться при создании наследников ранее реализованных бизнес-объектов.
Перегруженных версии методов класса BaseObjectEx выглядят следующим образом:

В отличие от аналогичных методов класса BaseObjectEx<T> , в данные версии методов добавлен дополнительный обобщенный параметр типа T, а также во все методы добавлен параметр T @this. Такой подход применен для обеспечения удобства использования методов с минимальным риском допущения ошибки при кодировании.
Вызов указанных методов при разработке классов бизнес-объектов выполняется следующим образом:

При вызове метода первым параметром передается ссылка на текущий объект (this), а затем лямбда-выражение доступа к свойству вида:

Описываемый подход позволяет безопасно в отношении типов указывать на требуемое свойство класса бизнес-объекта.

Недостатком такого подхода, как сказано в предыдущей статье, является низкая производительность, что ограничивает область его применения.

Полный исходный код можно посмотреть в демонстрационном примере.

LambdaToGetPropName