0
我有一個枚舉屬性。我希望這個屬性的序列化的XML是枚舉的駝峯式字符串,反之亦然。指示XmlSerializer處理序列化/反序列化的數據?
我有兩個函數,一個是ConcatCamelCase
,另一個是SplitCamelCase
,我希望序列化程序相應地使用它們,這是可能的,只需使用屬性裝飾字段?
如果不是,其他選擇是什麼,而不必與所有其他領域混淆?
我有一個枚舉屬性。我希望這個屬性的序列化的XML是枚舉的駝峯式字符串,反之亦然。指示XmlSerializer處理序列化/反序列化的數據?
我有兩個函數,一個是ConcatCamelCase
,另一個是SplitCamelCase
,我希望序列化程序相應地使用它們,這是可能的,只需使用屬性裝飾字段?
如果不是,其他選擇是什麼,而不必與所有其他領域混淆?
你必須做這樣的事情:
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);}
}
}
您可以顯式設置使用XMlSerialization屬性序列化的所有內容的名稱。
[XmlRoot("theNameYouWant")]
[XmlElement("theNameYouWant")]
聽起來很公平。但有沒有辦法來重寫某些XML屬性,使其在沒有代理道具的情況下工作?我有很多屬性,如果可能的話,我不想爲它們創建代理。謝謝約翰。 – Shimmy
對不起,沒辦法做你想做的。你的課程是如何創建的?是手工還是它們產生?如果後者,然後生成他們這種模式。 –
我有許多枚舉字段,我想我將不得不爲每個和其中一個創建代理,我認爲有一個屬性,我可以提供一個函數在字段上執行,就像['DataAnnotations.CustomValidationAttribute '](http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.customvalidationattribute.aspx):( – Shimmy