首页 > 解决方案 > 如何为 CompletionService.GetDescriptionAsync 结果指定语言环境?

问题描述

我需要为CompletionService.GetDescriptionAsync.

当我调用GetDescriptionAsync它时,它会返回正确的描述,但使用我的 Windows 运行的相同语言(区域设置),但我想指定例如 new CultureInfo("en-US")。

var workspace = new AdhocWorkspace();
var project = workspace.AddProject( projectInfo );
Document document = workspace.AddDocument( project.Id, "MyCode.cs", SourceText.From( __code__ ) );
CompletionService completionService = CompletionService.GetService( document );
CompletionList completions = completionService.GetCompletionsAsync( document, __positionInTheCode__ ).Result;

if ( completions != null )
  foreach ( CompletionItem completionItem in completions.Items )
  {
    string description = completionService.GetDescriptionAsync( document, completionItem ).Result.Text;
    ...
  }

当我运行捷克 Windows 时,它返回例如Console.Beep

"void Console.Beep() (+1  přetížení)"

但我想获得英文版:

"void Console.Beep() (+1  overload)"

标签: c#.netroslyn

解决方案


我发现设置CultureInfo.CurrentUICulture是解决方案。


推荐阅读