gpt4 book ai didi

c# - 将类转换为 XML 到字符串

转载 作者:数据小太阳 更新时间:2023-10-29 02:21:06 25 4
gpt4 key购买 nike

我正在使用 XMLSerializer 将类序列化为 XML。有很多例子可以将 XML 保存到一个文件中。然而,我想要的是将 XML 放入字符串中,而不是将其保存到文件中。

我正在试验下面的代码,但它不起作用:

public static void Main(string[] args)
{

XmlSerializer ser = new XmlSerializer(typeof(TestClass));
MemoryStream m = new MemoryStream();

ser.Serialize(m, new TestClass());

string xml = new StreamReader(m).ReadToEnd();

Console.WriteLine(xml);

Console.ReadLine();

}

public class TestClass
{
public int Legs = 4;
public int NoOfKills = 100;
}

关于如何解决这个问题有什么想法吗?

谢谢。

最佳答案

在像这样阅读之前,你必须将你的内存流回到开头:

        XmlSerializer ser = new XmlSerializer(typeof(TestClass));
MemoryStream m = new MemoryStream();

ser.Serialize(m, new TestClass());

// reset to 0 so we start reading from the beginning of the stream
m.Position = 0;
string xml = new StreamReader(m).ReadToEnd();

最重要的是,通过调用 dispose 或 close 来关闭资源总是很重要的。你的完整代码应该是这样的:

        XmlSerializer ser = new XmlSerializer(typeof(TestClass));
string xml;

using (MemoryStream m = new MemoryStream())
{
ser.Serialize(m, new TestClass());

// reset to 0
m.Position = 0;
xml = new StreamReader(m).ReadToEnd();
}

Console.WriteLine(xml);
Console.ReadLine();

关于c# - 将类转换为 XML 到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7817962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com