派生/重写DataMemberAttribute

时间:2018-08-08 18:56:53

标签: c# serialization data-binding asp.net-core-mvc asp.net-core-1.0

我想重写DataMemberAttribute的某些功能,但是不能创建派生类,因为它被标记为“密封”。

我想做的是将EmitDefaultValue缺省设置为'false'而不是'true',并且我也不想如果集合为null或为空,则不“发出”一个集合。

有什么想法吗?


评论员想要一个例子。确实没有办法显示示例,我相信我的问题很清楚。但是到底怎么了。

不必在每个属性上都这样做:

[DataContract]
public class MyDto
{
  [DataMember( EmitDefaultValue = false )]
  public string Name { get; set; }

  [DataMember( EmitDefaultValue = false )]
  public string Occupation { get; set; }

  [DataMember( EmitDefaultValue = false )]
  public List<string> Friends { get; set; }
}

我希望能够做到这一点:

[DataContract]
public class MyDto
{
  [CustomSerialization]
  public string Name { get; set; }

  [CustomSerialization]
  public string Occupation { get; set; }

  [CustomSerialization]
  public List<string> Friends { get; set; }
}

对于最后一个属性“ Friends”,如果该属性为null或为空,则不要在输出中对其进行序列化。

0 个答案:

没有答案