XmlWriter.Create 不在流中创建对象

本文关键字:创建对象 Create XmlWriter | 更新日期: 2023-09-27 18:27:57

System.Runtime.Serialization.DataContractSerializer ser = new System.Runtime.Serialization.DataContractSerializer(obj.GetType());
MemoryStream ms = new MemoryStream();
XmlWriter xdw = XmlWriter.Create(ms);
ser.WriteObject(xdw, obj);

毫秒的长度为 0

为什么?

XmlWriter.Create 不在流中创建对象

这有效:

class Program
{
    static void Main(string[] args)
    {
        var obj = "bugaga!";
        System.Runtime.Serialization.DataContractSerializer ser = new System.Runtime.Serialization.DataContractSerializer(obj.GetType());
        MemoryStream ms = new MemoryStream();
        using (XmlWriter xdw = XmlWriter.Create(ms))
        {
            ser.WriteObject(xdw, obj);
        }
        Console.WriteLine(ms.Length);
    }
}

[更新] 或只是做 xdw。Flush((,如前所述