Похоже на набор вызовов вложенных свойств:
класс X имеет свойство с именем ShippingInfo;тип, представленный ShippingInfo, имеет свойство Address;тип, представленный Address, имеет свойство Street.
Итак, предположим, что вы знаете соответствующий экземпляр класса X, с которым нужно работать:
- токенизируйте строку через string.Split (".". ToCharArray ()) в строку [] или что-то в этом роде
- начните с известного экземпляра X
- , используйте отражение, чтобы получить MethodInfo для метода получения ShippingInfo
- использовать отражение для получения Типа, возвращаемого ShippingInfo get ()
- Вызывать метод получения с использованием отражения
- , используя возвращаемое значение из ShippingInfo get () и Тип возврата:
- получить MethodInfo для получателя адреса в возвращенном типе .....
и так далее.Вы получаете картину.
Кажется немного длинным и утомительным, и это так.Но именно так вы бы поступили с помощью отражения.
Интересно, возможно ли сделать то же самое с LINQ to Objects?
Ответ на часть 2 включает получение начального значенияX из вашего списка <>.