我有一个WCF REST服务。每个传入消息的XML主体被反序列化到我的对象中,如下所示:
private static Message MyMethod(Stream stream)
{
try
{
var serializer = new XmlSerializer(typeof(MyObject));
var myObject = (MyObject)serializer.Deserialize(stream);
//do stuff
}
catch (InvalidOperationException invEx)
{
//write stream (xml) to error log
}
//etc
}
我希望能够在反序列化失败时编写XML来记录。我尝试过的所有内容都会产生一个空字符串。这甚至可能吗?
谢谢!
答案 0 :(得分:0)
您可以轻松地将整个内容作为string
而非Stream
,并从中加载/反序列化。 Stream
是否有特殊原因?
或者(更好的是,IMO),您可以将要反序列化的对象指定为DataContract
并在操作合同中要求XML并让WCF框架为执行工作你。
答案 1 :(得分:0)
您是否尝试在写入错误日志之前重新定位流?
stream.Position = 0;