在 Json.Net 中,我在 JsonSerializerSettings 上设置 Context(类型 StreamingContext)对象,以传递对象在 [OnDeserialized] 方法中反序列化期间使用的信息。我通过创建一个新的 StreamingContext 对象并设置附加对象参数来做到这一点。这一切都在非 Windows 商店构建中完美运行:
public static T Deserialize<T>(string jsonString, DeserializationContext context = null)
{
JsonSerializerSettings settings = new JsonSerializerSettings()
{
// Win store builds fail on this line:
Context = new StreamingContext(StreamingContextStates.Other, context),
TypeNameHandling = TypeNameHandling.Auto
};
return JsonConvert.DeserializeObject<T>(jsonString, settings);
在 Windows Store SDK 中,StreamingContext对象存在但为空(Context 和 State 都不存在,并且它没有非默认构造函数)。看起来这个对象现在完全没用了,因为它现在只是一个空结构!
有谁知道绕过这个新限制并像在非 Windows 商店构建中那样传递上下文的方法?