Я был немного отрывочен в том, чего ты хотел достичь. Я думаю, что вы хотите начать с ClassA и в конечном итоге пройти через свойства и добраться до ClassC. Чтобы сделать это, вы в основном должны понимать, как выполнять рекурсивное программирование, и немного разбираться в Reflection. Вот модифицированная версия кода, которую я использовал в прошлом, которую вы можете найти здесь .
private void SerializeObject(object obj) {
Type type = obj.GetType();
foreach (PropertyInfo info2 in type.GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance))
{
MethodInfo getMethod = info2.GetGetMethod(true);
if (getMethod != null)
SerializeObject(getMethod.Invoke(obj, null));
}
}
Для этого необходимо пройти через каждое свойство и использовать метод get каждого свойства, чтобы выполнить свойство и получить возвращаемый объект, чтобы вы могли пройти по нему, вызывая тот же метод SerializeObject
.