gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 08:02:29 25 4
gpt4 key购买 nike

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

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

不幸的是,JsConfig 是一个静态类,因此它的设置是静态的,并且我相信会泄露给同一 AppDomain 中的 ServiceStack 的其他使用者。这是一种不受欢迎的行为。

是否有某种方法可以将我的配置更改范围限制为对 JsonSerializer 的调用?

更新

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

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

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

最佳答案

ServiceStack.Text 中缺少此功能,因此我添加了 pull request为了它。

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

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

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

关于.net - 是否可以将 ServiceStack.Text.JsConfig 设置范围限制为您的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13844796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com