gpt4 book ai didi

c# - DataContractSerializer - 如何将 xml 输出到字符串(而不是文件)

转载 作者:IT王子 更新时间:2023-10-29 03:57:56 24 4
gpt4 key购买 nike

我有一个关于 datacontractserializer 的快速问题。也许这更像是一个流问题。我找到了一段将 xml 写入文件流的代码。我基本上不需要文件,只需要字符串输出。

public static string DataContractSerializeObject<T>(T objectToSerialize)
{
var fs = new FileStream("test.xml", FileMode.OpenOrCreate);
var serializer = new DataContractSerializer(typeof(T));
serializer.WriteObject(fs, objectToSerialize);
fs.Close();
return fs.ToString();
}

fs.ToString() 显然不是我要找的。我可以使用什么流或写入器等来返回正确的字符串而不创建文件?我确实查看了文件流创建的 XML,这正是我要找的。 XmlSerializer 编写的 XML 有点奇怪,在这种情况下我更喜欢 DataContractSerializer 的输出。谁能指出我正确的方向?

最佳答案

像这样 - 将你的输出放入 MemoryStream 然后读回:

public static string DataContractSerializeObject<T>(T objectToSerialize)
{
using(MemoryStream memStm = new MemoryStream())
{
var serializer = new DataContractSerializer(typeof(T));
serializer.WriteObject(memStm, objectToSerialize);

memStm.Seek(0, SeekOrigin.Begin);

using(var streamReader = new StreamReader(memStm))
{
string result = streamReader.ReadToEnd();
return result;
}
}
}

关于c# - DataContractSerializer - 如何将 xml 输出到字符串(而不是文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3238748/

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