如何为DataContractSerializer设置StreamingContext?

时间:2009-03-26 18:51:03

标签: .net datacontractserializer

我有一些像这样的代码:

[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没有。

  • 有没有办法让这项工作?
  • 我这样做错了吗?

1 个答案:

答案 0 :(得分:0)

使用IDataContractSurrogate可以基于每个类型或每个对象执行自定义JSON序列化和反序列化。

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

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

希望这有帮助!