WCF序列化代码

标签 wcf serialization deserialization

我刚刚开始使用 WCF。我有一个关于序列化的问题。我知道 WCF 默认情况下在幕后使用 DataContract Serialization。我在 Aaron Skonnard 的文章 http://msdn.microsoft.com/en-us/magazine/cc163569.aspx 中在线查看了一些代码。下面的代码来自他的文章。在此,他编写了序列化 Person 对象的代码。我的问题是 WCF 不会在幕后执行此操作。为什么我们必须编写序列化逻辑?然后再次反序列化回来。作为 WCF 初学者,我很困惑何时编写此代码,何时不编写。我认为如果没有编写序列化逻辑,这会很好地工作。感谢帮助!

static void WriterPersonSerializable()
{

Person p = new Person("Bob", 34, "secret");

p.spouse = new Person("Jane", 33, "secret");

using (FileStream fs = new FileStream("person.xml", FileMode.Create))
using (XmlDictionaryWriter writer =
    XmlDictionaryWriter.CreateTextWriter(fs))
{
    DataContractSerializer serializer =
        new DataContractSerializer(typeof(Person));
    serializer.WriteObject(writer, p);
}

最佳答案

你不必做那样的事情。当然,您可以设置自己的序列化。但默认情况下,如果您仅通过 [DataContract] 属性标记类,并通过 [DataMember] 属性标记类的属性,则可以。之后,您需要做的就是通知您的服务应该能够在 [ServiceKnownType] 属性中序列化/反序列化哪些类。就是这样,一切都会开箱即用。

关于WCF序列化代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15034732/

相关文章:

c# - WCF 身份验证 - 验证消息的安全性时出错

c# - serializedObject FindProperty 返回 null

java - 反序列化多态 JSON 字符串

java - Gson:如何处理可能具有不同类型的字段?

java - GSON - 反序列化原始数组

java - 如何解析作为 json 字符串 int 时间对象接收的时间 PT15H30M?

c# - 能够在 WCF 中将主体对象从客户端传送到服务端

c# - 具有松散类型参数的 WCF OperationContract

java - 想知道 Java object-json 序列化

java - 序列化父子对象