通过嵌套类动态解析值和属性

时间:2011-11-09 17:13:02

标签: c# linq parsing class reflection

我有几个包含嵌套类和列表的模型。许多班级成员都有我必须阅读的属性。

我正在寻找一种动态方式(可能通过Linq或Reflection)来检索指定模型中所有通用对象的值和属性。

欢迎任何建议。

编辑:

根据x0r的建议使用ObjectManager,我可以看到所有数据。此问题的其余部分需要成员注释。有没有办法复制每个类成员的PropertyInfo?

ObjectWalker objectWalker = new ObjectWalker(objectToValidate);

foreach (Object o in objectWalker)
{
    if (isGeneric(o.GetType()))
    {    
        PropertyInfo property = o.GetType().GetProperty(o); // <-- This does not work... Need to obtain annotations somehow
        object[] Attributes = property.GetCustomAttributes(typeof(Attribute), true);

        foreach (Attribute attribute in Attributes)
        {
            // Annotations processing goes here
        }
    }
}

1 个答案:

答案 0 :(得分:1)

查看ObjectWalker

它可以帮助您解析对象图并访问所有独特元素。 如您所见,它只存储一堆对象,而Current返回一个Object。

您可以对此进行修改,以便Walker保存一个包含每个属性所需的所有数据的类(如propertyinfo对象或属性列表)。