我有类似下面的类结构,
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()
我在p。
中得到[objB,data]但我需要深入研究任何上述结构的基本数据类型,这就是我需要的东西,
[数据(来自A类),x(来自B类),数据(来自B类)]这是我的第一个要求
第二个要求:一旦达到上述要求,我如何区分数据(来自A类)和数据(来自B类)。
答案 0 :(得分:0)
好问题。
您可以编写一个递归算法,该算法贯穿第一个类的属性并继续挖掘*,而属性的类型property.PropertyType
不是.NET程序集property.PropertyType.Assembly
中定义的类型。因此,请检查程序集或您认为原始的类型列表。
答案 1 :(得分:0)
您可以尝试在p。
上使用foreach循环检查第一个foreach中每个项目的类型,如果它与typeOf(B)匹配,则在此特定项目上执行propertyInfo以进入B类属性。现在,您可以先设置B类属性,然后再设置第二个属性A。