我想重写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或为空,则不要在输出中对其进行序列化。