. net反射属性信息



我有一个像下面这样的类结构,

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的属性。

相关内容

  • 没有找到相关文章

最新更新