Предположим, у меня есть такой класс:
public class Class1 {
public int x1;
public Class2 x2;
public double x3;
}
public class Class2 {
public int y1;
private int x2;
}
Есть какой-либо способ получить всю информацию о типе всех сериализуемых членов (я думаю, что это все открытые поля и свойства без явногозаявление приватному члену) из Class1
?
Например, я хочу создать такое дерево типов:
<Class1>
<x1>int</x1>
<x2>Class2</x2>
<Class2>
<y1>int</y1>
</Class2>
<x3>double</x3>
</Class1>
Дерево будет расширяться, если этот член не является атомарным типом (как int
, double
, List
и все типы, определенные системой).
Моя идея
Я знаю, что могу использовать reflection
и deep first search
, чтобы сделать это.Но я обнаружил, что все может стать сложным, потому что класс может быть generic class
.И меня беспокоит, есть ли более сложная ситуация, чем generic class
.
Так есть ли лучшее решение, чем использование reflection
и deep first search
для создания этого дерева?