Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 异步IStringLocalizer-GetAllStrings_C#_Asp.net Core - Fatal编程技术网

C# 异步IStringLocalizer-GetAllStrings

C# 异步IStringLocalizer-GetAllStrings,c#,asp.net-core,C#,Asp.net Core,我们有一个自定义的IStringLocazlizer实现,它从我们的内部公司CMS加载标签,CMS通过HTTP Rest接口公开数据 我们希望使用内置在Locazier中的NET Core,但我不喜欢GetAllStrings同步方法,它必须阻止执行HTTP调用的任务 我们显然有一个缓存,但我确实认为它似乎不正确 有什么想法吗 例如: public IEnumerable<LocalizedString> GetAllStrings(bool includeParentCulture

我们有一个自定义的IStringLocazlizer实现,它从我们的内部公司CMS加载标签,CMS通过HTTP Rest接口公开数据

我们希望使用内置在Locazier中的NET Core,但我不喜欢GetAllStrings同步方法,它必须阻止执行HTTP调用的任务

我们显然有一个缓存,但我确实认为它似乎不正确

有什么想法吗

例如:

public IEnumerable<LocalizedString> GetAllStrings(bool includeParentCultures)
    {
        Task<CmsLabelsModel> task = pipeline.SendAsync(new GetLabelsModelRequest(ResourceName));

        CmsLabelsModel result = task.GetAwaiter().GetResult(); //Yuk Yuk

        return result.LabelModels.Select(pair => new LocalizedString(pair.Key, pair.Value.Value));
    }
public IEnumerable GetAllString(bool includeParentCultures)
{
Task Task=pipeline.SendAsync(新的GetLabelsModelRequest(ResourceName));
CmsLabelsModel result=task.GetAwaiter().GetResult();//Yuk-Yuk
返回result.LabelModels.Select(pair=>newlocalizedstring(pair.Key,pair.Value.Value));
}
我认为
GetAwaiter().GetResult()
是唯一的选择。在
CMS
中,资源是否会频繁更改?如果没有,您可以考虑将登记自定义StringLocalizer作为代码> SuntLoNe/CODE >以提高性能。