You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 03:15:23