Roslyn GetDescriptionAsync返回描述不完整问题求助
问题:Roslyn代码补全无法获取功能描述
我正在探索Roslyn代码补全服务,能够获取补全列表,但调用GetDescriptionAsync获取描述时,仅返回类型和访问修饰符,无法得到实际功能描述(例如“用于控制台打印的函数”)。
项目与文档初始化代码
var code = @"using System; using TestDll; public class MyClass { public static void MyMethod(int value) { Test. } }"; var projectInfo = ProjectInfo.Create(ProjectId.CreateNewId(), VersionStamp.Create(), "MyProject", "MyProject", LanguageNames.CSharp). WithMetadataReferences(new[] { MetadataReference.CreateFromFile("TestDll.dll", documentation: XmlDocumentationProvider.CreateFromFile("TestDLL.xml")) }); var project = workspace.AddProject(projectInfo); var document = workspace.AddDocument(project.Id, "MyFile.cs", SourceText.From(code)); await PrintCompletionResults(document, code.LastIndexOf("Test.") + 5);
PrintCompletionResults方法实现
private static async Task PrintCompletionResults(Document document, int position) { var completionService = CompletionService.GetService(document); var results = await completionService.GetCompletionsAsync(document, position); foreach (var i in results.Items) { Console.WriteLine(i.DisplayText); var desc = completionService.GetDescriptionAsync(document, i).Result; // 示例返回内容:"interface Test.DebugPrint()" Console.WriteLine(desc.Text); foreach (var prop in i.Properties) { Console.Write($"{prop.Key}:{prop.Value} "); } Console.WriteLine(); foreach (var tag in i.Tags) { Console.Write($"{tag} "); } Console.WriteLine(); Console.WriteLine(); } }
内容的提问来源于stack exchange,提问作者iamveryconfused
相关产品推荐
相关产品推荐

