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()并想知道它是否会起作用。是否可以在方法中访问属性的属性?或者有没有更好的方法来有条件地序列化属性?
解决方案
推荐阅读
- css - 使用 Drupal Bootstrap 是否可以允许某些用户查看药丸但不允许其他用户查看药片?
- javascript - JS Array.find 如果未定义的元素
- postgresql - Postgres 11.7 中具有太多连接或多态关系的表的设计问题
- c# - 有没有办法在使用 CSVHelper 阅读时忽略 readContext.rawrecord 中的“/r/n”
- c# - 使用 C# 读取 JSON 文件
- c# - 如何通过 ViewModel 将 Listview 中的项目文本传输到新页面?
- postgresql - 带有 PostgreSQL SELECT 查询的 Powershell 返回错误的结果
- javascript - 反应状态落后一步(不重复!)
- javascript - 为图像创建模态窗口
- javascript - 如何从 Cloud Storage [Firebase 托管] 下载文件