Xml WCF Rest:DataContractSerializer-序列化名称包含冒号的对象
您好,我需要从我的WCF/REST获取XML自定义,但是我的属性的名称没有按我希望的那样序列化,因为它包含冒号 我的DataContract用于错误响应Xml WCF Rest:DataContractSerializer-序列化名称包含冒号的对象,xml,wcf,rest,post,serialization,Xml,Wcf,Rest,Post,Serialization,您好,我需要从我的WCF/REST获取XML自定义,但是我的属性的名称没有按我希望的那样序列化,因为它包含冒号 我的DataContract用于错误响应 [DataContract(Namespace = "xxxx:xxxx:rest", Name = "hs:rest")] public class ErrorResult { [DataMember(Order = 0, Name = "status")] string Status {
[DataContract(Namespace = "xxxx:xxxx:rest", Name = "hs:rest")]
public class ErrorResult
{
[DataMember(Order = 0, Name = "status")]
string Status
{
get
{
return "ERROR(5698)";
}
set { }
}
[DataMember(Order = 1, Name = "reason")]
public string Reason { get; set; }
[DataMember(Order = 2, Name = "extendedMessage")]
public string ExtendedMessage { get { return string.Empty; } set { } }
[DataMember(Order = 3, Name = "result")]
public string Result { get { return string.Empty; } set { } }
[DataMember(Order = 4, Name = "type")]
public string Type { get { return string.Empty; } set { } }
[...]
}
我的序列化程序
public string XmlTranslation(ErrorResult error)
{
using (var memoryStream = new MemoryStream())
{
using (var reader = new StreamReader(memoryStream))
{
var serializer = new DataContractSerializer(error.GetType());
serializer.WriteObject(memoryStream, error);
memoryStream.Position = 0;
return reader.ReadToEnd();
}
}
使用这些方法并使用fiddler分析网络通信,结果如下:
请求:(不重要)
日期
测试它
2009-03-13
1.
每日的
百货商店
答复:
<hs_x003A_rest xmlns="xxxx:xxxx:rest" xmlns:i="http://www.w3.org/2001/XMLSchema-
instance">
<status>ERROR(5698)</status>
<reason>InternalError(1011)</reason>
<extendedMessage/>
<result/>
<type/>
</hs_x003A_rest>
错误(5698)
内部错误(1011)
我的名字像“hs_x003A_rest”,但我的名字是“hs:rest”
你有什么建议吗?提前感谢您的回答
<hs_x003A_rest xmlns="xxxx:xxxx:rest" xmlns:i="http://www.w3.org/2001/XMLSchema-
instance">
<status>ERROR(5698)</status>
<reason>InternalError(1011)</reason>
<extendedMessage/>
<result/>
<type/>
</hs_x003A_rest>