C#recrusive使用属性

时间:2016-03-08 09:21:27

标签: c# reflection

我有一个非常复杂的类的实例,其中List类型的相同属性应限制,并且应更改最后一项。< / p>

为了实现这一点,我创建了一个名为RangeLimitAttribute的属性,其中包含消息的限制,消息和属性。

但如何从我的对象获取此属性的List 递归的所有实例?

public class RangeLimitAttribute : Attribute
{
    public RangeLimitAttribute(int maxCount, string message, string messagePropertyname)
    {
        MaxCount = maxCount;
        this.Message = message;
        this.MessagePropertyname = messagePropertyname;
    }

    public string MessagePropertyname { get; set; }

    public string Message { get; set; }

    public int MaxCount { get; set; }
}

示例类:

public class Class
{
    [XmlAttribute("DisplayNameXYZ")]
    public string DisplayName { get; set; }

    [XmlAttribute("ErrorsXYZ")]
    [RangeLimit(100, "... more Errors", "Message")]
    public List<NestedClass> Errors { get; set; }
}

public class NestedClass
{
    [XmlAttribute("MessageXYZ")]
    public string Message { get; set; }

    [XmlElement("FilesXYZ")]
    [RangeLimit(100, "... more Errors", "OtherProperty")]
    public List<File> Files { get; set; }
}

0 个答案:

没有答案