是否可以在不指定任何序列化属性的情况下进行控制XmlSerializer
/DataContractSerializer
行为?
更具体地说,我想控制序列化(XmlIgnore
,自定义属性名称等),但不修饰我的属性。用例:
XmlSerializer
到DataContractSerializer
以JSON不改变类代码例如,如何在不取消注释属性的情况下序列化以下内容:
// [Serializable]
public MyClass
{
// [XmlIgnore] - The following property should not be serialized, without uncommenting this line
public int DontSerializeMeEvenThoughImPublic { get; set; }
// [XmlAttribute("another_name")] - should be serialized as 'another_name', not 'SerializeMeAsXmlAttribute'
public double SerializeMeAsXmlAttribute { get; set; }
// [DataMember] - should be included
private string IWantToBeSerializedButDontDecorateMeWithDataMember { get; set; }
}
您不能(优雅地做)。
修改XmlSerializer
序列化类的唯一方法是使用属性(SerializableAttribute
不需要)。该DataContractSerializer
是雪上加霜。
一个可能的解决方案是为XML序列化/ desrialization创造中级班和使用Automapper到“真正的”类和中介之间的数据复制。我已经使用这种方法将前端XML序列化问题排除在我的业务逻辑数据类型之外。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句