获取 ReferencedSymbol 的方法名

门卫

我有来自方法符号的引用,但我需要获取调用方法符号的方法的名称。知道如何从参考对象中提取此信息吗?这是代码:

var references = SymbolFinder.FindReferencesAsync(symbol, solution).Result;

if (references != null && references.Any())
{
    foreach (var reference in references)
    {
        foreach (var location in reference.Locations)
        {
            // Get name of the method of the reference 
        }
    }
}
乔治亚历山德里亚

您需要检索 以SemanticModel供参考,然后您应该获得包含您的参考的最里面的封闭符号:

...
foreach (var location in reference.Locations)
{
    if (location.Document.TryGetSemanticModel(out var referenceSemanticModel))
    {
        var enclosingSymbol = referenceSemanticModel.GetEnclosingSymbol(location.Location.SourceSpan.Start);
        if (!(enclosingSymbol is null))
        {
            // NOTE: if your symbol are referenced by lambda then this name 
            // would be the innermost enclosing member which contains lambda,
            // so be careful
            var name = enclosingSymbol.Name;
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

登录-获取方法名称

来自分类Dev

如何从已知方法获取方法名?

来自分类Dev

codeigniter从父方法获取方法名称

来自分类Dev

junit,获取失败的方法名称

来自分类Dev

获取Web服务的方法名称

来自分类Dev

如何获取模型的方法名称数组?

来自分类Dev

获取当前方法名称

来自分类Dev

获取引发异常的方法名称

来自分类Dev

smalltalk反射-如何获取方法名称?

来自分类Dev

Spring bean方法:如何获取方法名称?

来自分类Dev

获取通过lambda表达式传递的方法名称?

来自分类Dev

使用nameof在C#中获取setter方法名称

来自分类Dev

从lambda获取方法名称而无需调用

来自分类Dev

Java获取编译时安全的方法名称

来自分类Dev

在Java过滤器中获取方法名称

来自分类Dev

获取所有服务合同方法名称

来自分类Dev

JS-无法获取函数实例的构造方法名称

来自分类Dev

在授权前/授权后获取方法名称

来自分类Dev

从非托管库的方法名称中获取参数类型?

来自分类Dev

如何获取在传递参数的lambda中使用的方法名称

来自分类Dev

从AOP调用类获取方法名称和参数

来自分类Dev

在Java过滤器中获取方法名称

来自分类Dev

获取所有服务合同方法名称

来自分类Dev

使用PostSharp时如何在原始方法中获取方法名称?

来自分类Dev

如何使用Groovy获取没有继承方法的类的所有方法名称?

来自分类Dev

在C#中动态获取方法名称的最简单,最便宜的方法是什么?

来自分类Dev

给定方法名称为字符串,如何获取方法实例?

来自分类Dev

如何使用Groovy获取没有继承方法的类的所有方法名称?

来自分类Dev

如何在不进行硬编码的情况下获取方法名?

Related 相关文章

热门标签

归档