C# 如何将StreamingContext传递给DataContractSerializer?

C# 如何将StreamingContext传递给DataContractSerializer?,c#,serialization,datacontractserializer,C#,Serialization,Datacontractserializer,我试图将一些数据传递给DataContractSerializer的StreamingContext,但我不知道如何传递。 下面是我的代码的一个小示例: MemoryStream stream = new MemoryStream(); DataContractSerializer serializer = new DataContractSerializer(typeof(OldClass)); serializer.WriteObject(stream, _OldClass); stream

我试图将一些数据传递给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)
{
    // ...
}
如您所见,此代码创建了新的StreamingContext(StreamingContextStates.All)
为清楚起见,
NetDataContractSerializer
的类似代码使用上下文,该上下文来自传递的序列化程序实例:

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

这似乎是不可能的。我相信,也可以参考参考资料。