gpt4 book ai didi

c# - 如何将 StreamingContext 传递给 DataContractSerializer?

转载 作者:行者123 更新时间:2023-11-30 14:27:16 25 4
gpt4 key购买 nike

我正在尝试将一些数据传递到 DataContractSerializer 的 StreamingContext,但我不知道如何传递。这是我的代码的一小部分示例:

MemoryStream stream = new MemoryStream();
DataContractSerializer serializer = new DataContractSerializer(typeof(OldClass));
serializer.WriteObject(stream, _OldClass);
stream.Seek(0, SeekOrigin.Begin);

serializer = new DataContractSerializer(typeof(NewClass));
//here I would like to give the serializer e.g. a string as StreamingContext.Context
_NewClass = (NewClass)serializer.ReadObject(stream);

最佳答案

你不能。

当使用 DataContractSerializer 时,传递给序列化/反序列化回调的 StreamingContext 实例来自内部 XmlObjectSerializerContext

初始化代码如下:

internal XmlObjectSerializerContext(DataContractSerializer serializer, DataContract rootTypeDataContract, DataContractResolver dataContractResolver)  
: this(serializer, serializer.MaxItemsInObjectGraph, new StreamingContext(StreamingContextStates.All), serializer.IgnoreExtensionDataObject, dataContractResolver)
{
// ...
}

如您所见,这段代码创建了new StreamingContext(StreamingContextStates.All)
为清楚起见,NetDataContractSerializer 的类似代码使用来自传递的序列化程序实例的上下文:

internal XmlObjectSerializerContext(NetDataContractSerializer serializer) 
: this(serializer, serializer.MaxItemsInObjectGraph, serializer.Context, serializer.IgnoreExtensionDataObject)
{
}

关于c# - 如何将 StreamingContext 传递给 DataContractSerializer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33274535/

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