Позвоните собственности по имени

У меня есть класс с более чем 100 уникальными именованными свойствами и более чем 20 дочерними классами, иногда в списках. Ниже очень упрощенная иллюстрация того, что я имею в виду:

public class classA
    {
        public String PropertyA1 { get; set; }
        public int PropertyA2{get;set;}
        public List myList;
        public classC myClass { get; set; }

        public void SetProperty(String PropertyName)
        {
            // Match property name to property in this class or child class.
        }
    }

    class classB
    {
        public String PropertyB1 { get; set; }
        public bool PropertyB2 { get; set; }
    }

    class classC
    {
        public String PropertyC1 { get; set; }
    }

Я хотел бы сделать две вещи, которые могут или не могут быть возможны. Первое, что мне нужно сделать, - это перебрать все публичные свойства, включая свойства дочерних классов и классов в списке, и перевести значения. Я знаю, что могу выполнить синтаксический анализ, выполнив сериализацию в XML и проанализировав результаты. У меня даже есть код для преобразования в xml, так как функция класса заключается в создании объекта xml. Тем не менее, я обеспокоен тем, что анализ через xml может быть намного дороже, чем доступ к свойствам с помощью отражения. Можно ли использовать отражение таким образом, и будет ли это быстрее, чем изменение xml?

Еще я хотел бы получить доступ к любому свойству, передавая имя свойства в метод. Я понимаю, что мне нужен отдельный метод для доступа к классам в списках, и, возможно, придется преобразовать список в словарь. Вопрос в том, возможно ли это, и должен ли код быть только в родительском классе, или каждый из дочерних классов должен повторять код?

Ответы на вопрос(1)

Ваш ответ на вопрос