小编thr*_*ter的帖子

如何在.NET WCF中使用MessageBuffer对象的WriteMessage(Stream stream)方法?

在试图弄清楚如何将.NET System.ServiceModel.Channels.Message对象转换为XmlDocument时,我想我可以这样做:

Message message = Message.CreateMessage(messageVersion, "SOAPAction");

using(var messageBuffer = message.CreateBufferedCopy(int.MaxValue))
{
    var stream = new MemoryStream();
    using(var xmlWriter = XmlWriter.Create(stream))
    {
        var xmlDocument = new XmlDocument();

        messageBuffer.WriteMessage(stream);
        stream.Flush();

        stream.Position = 0;
        xmlDocument.Load(stream);
        stream.Close();

        Debug.Writeline(xmlDocument.OuterXml);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,这会导致xmlDocument.Load(stream)出错:

"Data at the root level is invalid. Line 1, position 1."
Run Code Online (Sandbox Code Playgroud)

我现在意识到我应该使用Message对象的WriteMessage与XmlWriter对象一起使用,如下所示:

Message message = Message.CreateMessage(messageVersion, "SOAPAction");
using(var messageBuffer = message.CreateBufferedCopy(int.MaxValue))
{
    var stream = new MemoryStream();
    using(var xmlWriter = XmlWriter.Create(stream))
    {
        var xmlDocument = new XmlDocument();

        messageBuffer.CreateMessage().WriteMessage(xmlWriter);
        xmlWriter.Flush();
        stream.Flush();

        stream.Position = …
Run Code Online (Sandbox Code Playgroud)

.net wcf serialization xmldocument soap

5
推荐指数
0
解决办法
1038
查看次数

如何在Windows 8.1的通用应用程序中找到设备型号名称

我正在使用的api需要使用的设备的型号名称.在Windows 8中我会使用Microsoft.Phone.Info.DeviceStatus.DeviceName.但是,我在Windows 8.1中创建了一个新的通用应用程序,并且"Microsoft.Phone"命名空间似乎缺失了.

如何在Windows 8.1中找到与通用应用程序一起使用的设备的型号名称

windows-phone-8.1

2
推荐指数
1
解决办法
1742
查看次数

标签 统计

.net ×1

serialization ×1

soap ×1

wcf ×1

windows-phone-8.1 ×1

xmldocument ×1