当您需要将 DataContractSerializer 的 XML 输出到字符串而不是文件时,可以使用以下方法:
以下是一个示例代码:
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Xml;
public class Program
{
[DataContract]
public class MyClass
{
[DataMember]
public string Name { get; set; }
[DataMember]
public int Age { get; set; }
}
public static void Main()
{
MyClass myObject = new MyClass { Name = "John Doe", Age = 30 };
string xmlString = SerializeToXmlString(myObject);
Console.WriteLine(xmlString);
}
public static string SerializeToXmlString(MyClass obj)
{
DataContractSerializer serializer = new DataContractSerializer(obj.GetType());
using (MemoryStream memoryStream = new MemoryStream())
{
using (XmlDictionaryWriter writer = XmlDictionaryWriter.CreateTextWriter(memoryStream, Encoding.UTF8))
{
serializer.WriteObject(writer, obj);
writer.Flush();
return Encoding.UTF8.GetString(memoryStream.ToArray());
}
}
}
}
在上面的示例中,我们首先定义了一个名为 MyClass 的类,并使用 DataContract 和 DataMember 属性进行了标记。然后,我们创建了一个名为 SerializeToXmlString 的方法,该方法将对象序列化为 XML 字符串。在 Main 方法中,我们创建了一个 MyClass 对象,并将其序列化为 XML 字符串,然后将其输出到控制台。
请注意,我们在代码中没有使用任何云计算品牌商的产品。
领取专属 10元无门槛券
手把手带您无忧上云