Visual Studio Extensibility Essentials 2019:如何获取所选项目的类型?

trnvg8h3  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(205)

我正在尝试使用Visual Studio Extensibility Essentials 2019创建VS扩展。扩展需要获取VisualStudio代码文件中选定项的类型。我能够获取所选的文本,但我想获取所选项的类型,以便可以使用反射来显示更多信息。

[Command(PackageIds.MyCommand)]
internal sealed class MyCommand : BaseCommand<MyCommand>
{
    protected override async Task ExecuteAsync(OleMenuCmdEventArgs e)
    {
        var doc = await VS.Documents.GetActiveDocumentViewAsync();
        var span = doc.TextView.Selection.SelectedSpans.FirstOrDefault();
        var text = span.GetText();
        await VS.MessageBox.ShowWarningAsync("MyCommand", text);
    }
}

任何想法,代码示例等将不胜感激。

zrfyljdw

zrfyljdw1#

你应该使用正则表达式,解析类和属性以及它的类型。检查regex代码是否为true,可能会失败。

var code = doc.ReadAllText();

var match = Regex.Match(code, "\\s*(static)?\\s*(public|private)\\s*\\w+\\s*(\\w+)\\s*(\\(\\s*\\w*(,?\\s*\\w+)*\\))?");

Console.WriteLine(match.Value)

相关问题