是否可以将 ServiceStack.Text.JsConfig 设置范围限制为您的库?

2024-05-01

我正在编写一个使用的自定义库ServiceStack.Text https://github.com/ServiceStack/ServiceStack.Text内部。使用我的其他库也可能使用 ServiceStack.Text。

我想改变一些JsConfig选项(特别是日期处理),但是,像任何好公民一样,我不希望对这些值的修改给我的消费者带来副作用。

很遗憾JsConfig是一个静态类,因此它的设置是静态的,并且我相信会渗透到同一 AppDomain 中的 ServiceStack 的其他使用者。这是一种不受欢迎的行为。

有没有什么方法可以将我的配置更改范围限制为我对JsonSerializer?

Update

我确实意识到有JsConfig.Reset方法,不幸的是,如果调用者已经自定义了它,那么它就会丢失。

我可以保存值并恢复它们,但我必须同步对序列化器的访问,这也有点违背了目的。

希望我缺少一些简单的东西?


ServiceStack.Text 中缺少此功能,因此我添加了一个拉取请求 https://github.com/ServiceStack/ServiceStack.Text/pull/253 for it.

基本上现在如果您想限制配置设置的范围,您可以使用以下语法:

using(var config = JsConfig.With(new Config { DateHandler = ... }))
{
}

一旦 using 块超出范围,这些值将不再被设置,ThreadStatic也不会影响其他线程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以将 ServiceStack.Text.JsConfig 设置范围限制为您的库? 的相关文章

随机推荐