C# 异步IStringLocalizer-GetAllStrings
我们有一个自定义的IStringLocazlizer实现,它从我们的内部公司CMS加载标签,CMS通过HTTP Rest接口公开数据 我们希望使用内置在Locazier中的NET Core,但我不喜欢GetAllStrings同步方法,它必须阻止执行HTTP调用的任务 我们显然有一个缓存,但我确实认为它似乎不正确 有什么想法吗 例如: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
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 >以提高性能。