JsonSerializerSettings线程安全吗?

埃巴尔

如果我在项目中使用相同的设置,是否可以实例化我的单个静态副本JsonSerializerSettings并在整个过程中使用它?

例如 :

private static readonly JsonSerializerSettings settings = new JsonSerializerSettings {
    Formatting              = Formatting.Indented,
    TypeNameHandling        = TypeNameHandling.None,
    DateFormatHandling      = DateFormatHandling.IsoDateFormat,
    TypeNameAssemblyFormat  = FormatterAssemblyStyle.Simple
};

public static string ToJSONString(this Object source) {
    return JsonConvert.SerializeObject(source, settings);
}   

那么,我有危险吗?

约瑟夫·伦诺克斯

以下对话发生在Twitter上,@ JamesNK是JSON.net的作者:https ://twitter.com/jonathan_oliver/status/332227095616966656

来自:乔纳森·奥利弗(Jonathan Oliver)@jonathan_oliver到:@JamesNK

静态JsonConvert.DeserializeObject方法线程安全吗?使用5.0.4和5.0.5得到一些奇怪的错误。

回复:

James Newton-King♔@JamesNK 2013年5月8日@jonathan_oliver

是的。如果不是,请在GitHub上创建问题

回复:

乔纳森·奥利弗(Jonathan Oliver)@jonathan_oliver 2013年5月9日

@JamesNK事实证明,与我与JsonConvert一起使用的静态JsonSerializerSettings对象相连的ContractResolver不是线程安全的。

我没有看到曾经提交过错误,但这确实暗示着它们的设计应该是线程安全的,但是也许有特定于实现的方法来破坏它,或者可能不是一个整体。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章