如果我在项目中使用相同的设置,是否可以实例化我的单个静态副本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] 删除。
我来说两句