序列化 – 在DataContractSerializer XML输出中删除“d1p1”命名
发布时间:2020-12-16 07:53:20 所属栏目:百科 来源:网络整理
导读:我使用DatacontractSerializer将我的domainModel序列化为一个xml文件. 我得到如下输出. z:anyType xmlns:i="http://www.w3.org/2001/XMLSchema-instance" z:Id="1" xmlns:d1p1="DCSerialization_IGITApproach" i:type="d1p1:X" xmlns:z="http://schemas.micr
我使用DatacontractSerializer将我的domainModel序列化为一个xml文件.
我得到如下输出. <z:anyType xmlns:i="http://www.w3.org/2001/XMLSchema-instance" z:Id="1" xmlns:d1p1="DCSerialization_IGITApproach" i:type="d1p1:X" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/"> <d1p1:Name z:Id="2">Ankit</d1p1:Name> <d1p1:PointsDictionary xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" z:Id="3" z:Size="1"> <d2p1:KeyValueOfstringPointsArrayq9VX7VJJ> <d2p1:Key z:Id="4">key1</d2p1:Key> <d2p1:Value xmlns:d4p1="http://schemas.datacontract.org/2004/07/SerializationApproach" z:Id="5"> <d4p1:points z:Id="6" z:Size="2"> <d2p1:double>45.5</d2p1:double> <d2p1:double>546.45</d2p1:double> </d4p1:points> </d2p1:Value> </d2p1:KeyValueOfstringPointsArrayq9VX7VJJ> </d1p1:PointsDictionary> </z:anyType> 而我想摆脱这些“d1p1”命名空间前缀,只需要< / PointDictionary>喜欢标签,而不是< / d1p1:PointsDictionary> ;. 第一个优先事项是通过代码来控制它,如果不可能,那么去XSLT或任何其他模式.
使用空的命名空间似乎删除前缀.使用以下DataContract属性设置您的课程:
[DataContract(Namespace="")] public class MyClass { ... } 那么当(de)序列化时,请确保将命名空间设置为空字符串: DataContractSerializer deserializer = new DataContractSerializer(typeof(MyClass),typeof(MyClass).Name,""); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |