【发布时间】:2011-10-26 23:26:03
【问题描述】:
我有一个枚举属性。我希望此属性的序列化 XML 是枚举的拆分后的驼峰式字符串,反之亦然。
我有两个函数,一个是ConcatCamelCase,另一个是SplitCamelCase,我想让序列化器相应地使用它们,这可以通过用属性装饰字段来实现吗?
如果不是,还有什么其他选择,而不必弄乱所有其他字段?
【问题讨论】:
标签: xml-serialization xmlserializer xml-attribute
我有一个枚举属性。我希望此属性的序列化 XML 是枚举的拆分后的驼峰式字符串,反之亦然。
我有两个函数,一个是ConcatCamelCase,另一个是SplitCamelCase,我想让序列化器相应地使用它们,这可以通过用属性装饰字段来实现吗?
如果不是,还有什么其他选择,而不必弄乱所有其他字段?
【问题讨论】:
标签: xml-serialization xmlserializer xml-attribute
你必须这样做:
public class SomeClass {
[XmlIgnore]
public MyEnum MyRealProperty {get;set;}
[XmlElement("MyRealProperty")]
[EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
public string MyProxyProperty
{
get {return SplitCamelCase(MyRealProperty);}
set {MyRealProperty = ConcatCamelCase(value);}
}
}
【讨论】:
DataAnnotations.CustomValidationAttribute :(
您可以使用 XMlSerialization 属性显式设置要序列化的所有内容的名称。
[XmlRoot("theNameYouWant")]
[XmlElement("theNameYouWant")]
【讨论】: