我正在使用ASP.Net和MVC,并希望仅为某些请求定制SerializeFn。看起来JsConfig的东西是静态的,我确实看到了JsConfig.BeginScope()的东西来保持配置范围,但它似乎不适用于自定义序列化器/反序列化器。如果我定义一个自定义的SerializeFn,它是否会跨越请求,因为它是静态的?如果是这样,有没有办法阻止这种情况发生?
感谢。
答案 0 :(得分:1)
Custom SerializerFn是静态的,在JsConfigScope scoped configuration中不可覆盖,因此它们适用于所有请求。
由于自定义序列化程序的范围不受限制,因此一种解决方案是将其映射到自定义类型并将序列化程序附加到:
public class CustomPoco : Poco {}
JsConfig<CustomPoco>.SerializerFn = //...;
因此,当您需要特殊序列化时,您可以将其映射到自定义类型并序列化:
var customType = dto.ConvertTo<CustomPoco>();
var jsonWithCustomSerialization = customType.ToJson();