如何基于自定义属性有条件地将属性序列化为xml?

时间:2018-09-01 03:11:24

标签: c# xml

我有一个复杂的对象图,需要将其序列化为Xml。在每个属性上,我都添加了一个自定义属性:

public class ExportLevelAttribute : Attribute
{
    public ExportLevel[] Values { get; set; }

    public ExportLevelAttribute (params ExportLevel[] values)
    {
        this.Values = values;
    }
}

以及每个属性:

[ExportLevel(Simple, Normal, Detailed)]
public bool IsTest { get; set; }

[ExportLevel(Detailed)]
public SomeObject1 Property1 { get; set; }

[ExportLevel(Normal, Detailed)]
public SomeObject2 Property2{ get; set; }

对象图是从相应的数据库表中填充的,并且在填充时即没有导出级别的差异。表中的所有数据都用于映射到对象的属性。

序列化方法的责任是确定哪些属性最终出现在xml中。

我看着OnSerializing(),想知道它是否可行。是否可以在方法中访问属性的属性?还是有更好的条件序列化属性的方法?

0 个答案:

没有答案