【问题标题】:How to set the StreamingContext for DataContractSerializer?如何为 DataContractSerializer 设置 StreamingContext?
【发布时间】:2009-03-26 18:51:03
【问题描述】:

我有一些类似这样的代码:

[DataContract]
class Foo {
    [OnSerializing]
    private void BeforeSerialize(StreamingContext ctx)
    {
        ((MtType)ctx.Context).DoStuff()
    }

    ...
}

var reader = new XmlTextReader(filename);
var serializer = new DataContractSerializer(typeof(Type));
Type type = (Type)serializer.ReadObject(reader);

我需要提供StreamingContext 结构。我发现 several references 可以为 NetDataContractSerializer 完成此操作,但对于 DataContractSerializer 则没有。

  • 有没有办法让这个工作?
  • 是我做错了吗?

【问题讨论】:

    标签: .net datacontractserializer


    【解决方案1】:

    使用 IDataContractSurrogate 可以让您在每个类型或每个对象的基础上进行自定义 JSON 序列化和反序列化。

    有关 API 文档,请参阅 IDataContractSurrogate Methods,有关示例,请参阅 DataContract Surrogate

    此外,要读取和解释 JSON,您将从 JsonReaderWriterFactory 开始,而不是 XML 工厂。请参阅JsonReaderWriterFactory Class 了解我的意思。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 1970-01-01
      • 2011-02-13
      • 2012-10-05
      • 1970-01-01
      相关资源
      最近更新 更多