我有一个像下面这样的类结构,
Class A
{
ClassB objB {get; set;}
int data {get; set;}
}
Class B
{
int x {get; set;}
int data {get; set;}
}
现在我需要在类A上使用反射,以保存以下输入到类A对象(例如:input => data=10;x=15;data=20)
问题:当我这样做,PropertyInfo[] p = typeof(ClassA).GetProperties()
I get [objB, data] in p.
但是我需要深入到基本数据类型对于任何这样的结构,也就是说,我需要像
这样的东西[数据(来自A类),x(来自B类),数据(来自B类)]这是我的第一个要求
第二个要求:一旦我达到上述要求,我如何区分数据(来自A类)和数据(来自B类)。
问得好
你可以写一个递归算法,它遍历第一个类的属性,并在属性类型property.PropertyType
不是. net程序集property.PropertyType.Assembly
中定义的类型时继续挖掘*。因此,检查程序集或您认为基本的类型列表。
你可以尝试在p上使用foreach循环吗?
首先检查foreach中每个项目的类型,如果它匹配typeOf(B),然后对该特定项目执行propertyInfo以进入B类属性。现在,你可以先设置类B的属性然后设置类a的属性。