jheddings и AlexD оба отлично отзываются о том, как разрешать строки свойств. Я хотел бы бросить шахту в микс, так как для этой цели я написал специальную библиотеку.
Основной класс Pather.CSharp - Resolver
. По умолчанию он может разрешать записи свойств, массива и словаря.
Так, например, если у вас есть такой объект
var o = new { Property1 = new { Property2 = "value" } };
и вы хотите получить Property2
, вы может сделать это следующим образом:
IResolver resolver = new Resolver();
var path = "Property1.Property2";
object result = r.Resolve(o, path);
//=> "value"
Это самый простой пример путей, которые он может решить. Если вы хотите увидеть, что еще он может, или как вы можете расширить его, просто перейдите на страницу Github .