servicestack,C#,Serialization,servicestack" /> servicestack,C#,Serialization,servicestack" />

C# 为什么ServiceStack.Text自定义反序列化设置不适用?

C# 为什么ServiceStack.Text自定义反序列化设置不适用?,c#,serialization,servicestack,C#,Serialization,servicestack,我将ServiceStack.Text与ServiceStack(web服务框架)一起使用 我正在尝试为AppHost.Configure()中的特定类型添加自定义序列化路由。但是,这些设置不适用/被忽略 public AppHost : AppHostBase { ... public override void Configure(Container container) { //Register custom serialization rout

我将ServiceStack.Text与ServiceStack(web服务框架)一起使用

我正在尝试为
AppHost.Configure()
中的特定类型添加自定义序列化路由。但是,这些设置不适用/被忽略

public AppHost : AppHostBase 
{
    ...

    public override void Configure(Container container)
    {
        //Register custom serialization routine
        ServiceStack.Text.JsConfig<CultureInfo>.SerializeFn = r => r.TwoLetterISOLanguageName;
        ServiceStack.Text.JsConfig<CultureInfo>.DeSerializeFn = r => return new CultureInfo(r);    
    }
}
公共AppHost:AppHostBase
{
...
公共覆盖无效配置(容器)
{
//注册自定义序列化例程
ServiceStack.Text.JsConfig.SerializeFn=r=>r.TwoLetterISOLanguageName;
ServiceStack.Text.JsConfig.DeSerializeFn=r=>返回新的CultureInfo(r);
}
}

ServiceStack.Text在内部大量缓存以实现快速性能。在调用
AppHost.Configure()
之前,ServiceStack已开始缓存创建过程

因此,要解决此问题,需要在调用
AppHost.Init()
之前注册设置


当然,ServiceStack.Text中的所有设置都不需要此选项-它只需要在调用
AppHost.Configure()
之前缓存的设置。

请提供第一段中信息的来源,好吗?我有一个类似的问题与ServiceStack。文本缓存和您的slution在我的情况下是不可能的。谢谢。。。我在想为什么它不调用我的自定义反序列化程序。。。将行设置JsConfig.DeSerializeFn移到AppHost构造函数中,而不是.Configure(),这样就解决了问题。