我對使用DataContractSerializer使用基元列表時設置自定義元素名稱的最佳方法感興趣。假設我有以下包含字符串列表作爲DataMember的類。在基元列表上使用DataContractSerializer的自定義元素名稱
[DataContract]
public class ClassName
{
[DataMember]
public List<String> FieldName { get; set; }
}
默認情況下,這個序列化到以下幾點:
<ClassName xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<FieldName xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<a:string>Value 1</a:string>
<a:string>Value 2</a:string>
<a:string>Value 3</a:string>
</FieldName>
</ClassName>
我想使XML儘可能簡單通過XSLT轉換所以最好我將標籤重命名爲更有用的東西,像價值。
一個可能的解決方案涉及創建一個擴展Collection併爲CollectionDataMember參數設置ItemName的類,該類我找到了here。我想知道是否有一種方法可以實現相同的目標,而不需要這個額外的類或其他形式的包裝類。 XML序列化程序使用XMLArray和XMLArrayItem參數來完成此操作,但DataContractSerializer似乎沒有類似的功能。
感謝您的任何提示或想法!
另一種選擇可能是您創建一個類被稱爲「價值:字符串」從System.String繼承和使用,在該數據成員... – Nabheet 2013-02-08 17:29:45
@NabheetSandhu'System.String'密封。你不能從它繼承。 – 2013-03-21 18:26:48