gpt4 book ai didi

c# - 如何将 C# WCF DataContract 序列化/反序列化到 XML 或从 XML 反序列化

转载 作者:可可西里 更新时间:2023-11-01 08:07:37 25 4
gpt4 key购买 nike

我正在开发一个 WCF 服务,它将被多个不同的客户端应用程序使用。为了使一个功能正常工作,服务器需要将 XML 文件读入 C# DataContract,然后将其传递给相关的客户端。据我从 MSDN 网站上了解到,这是可能的,但我找不到任何完整的示例。特别是,该网站谈到了一个我还不太了解的“流”参数。

我的数据合约有一个属性字段,它是另一个数据合约的列表,它有多个简单的属性字段。

例如

    [DataContract]
public class MyClass1 {
[DataMember]
public string name;
[DataMember]
public int age;
}

[DataContract]
public class MyClass2 {
[DataMember]
public List<MyClass1> myClass1List;
}

我的类(class)看起来像这样。

最佳答案

举个例子

MyClass1 obj = new MyClass1();
DataContractSerializer dcs = new DataContractSerializer(typeof(MyClass1));

using (Stream stream = new FileStream(@"C:\tmp\file.xml", FileMode.Create, FileAccess.Write))
{
using (XmlDictionaryWriter writer =
XmlDictionaryWriter.CreateTextWriter(stream, Encoding.UTF8))
{
writer.WriteStartDocument();
dcs.WriteObject(writer, obj);
}
}

Books b = new Books();

DataContractSerializer dcs = new DataContractSerializer(typeof(Books));

try
{
Stream fs = new FileStream(@"C:\Users\temelm\Desktop\XmlFile.xml", FileMode.Create, FileAccess.Write);

XmlDictionaryWriter xdw = XmlDictionaryWriter.CreateTextWriter(fs, Encoding.UTF8);
xdw.WriteStartDocument();
dcs.WriteObject(xdw, b);
xdw.Close();
fs.Flush();
fs.Close();
}
catch (Exception e)
{
s += e.Message + "\n";
}

关于c# - 如何将 C# WCF DataContract 序列化/反序列化到 XML 或从 XML 反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11142280/

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