【发布时间】:2017-07-28 23:39:50
【问题描述】:
我有这样的代码;
class abc{
void A()
{
//Some to do statements
}
void B()
{
var obj=A();
}
void C()
{
var call=B();
}
}
我想使用 roslyn 查找 Invoked 方法名称。
像这里的 o/p 将是:
- 对于方法 B:调用方法 A
- 对于方法 C:调用的方法 A
我想要这样的东西:
root.DescendantNodes().OfType<InvocationExpressionSyntax>().Where(md => md.Identifier.ValueText.Equals(methodName)).FirstOrDefault();
但 InvocationExpression 不包含要访问的标识符。 如何获取标识符名称
【问题讨论】:
-
Class.Method()或someDelegateField()或new SomeClass()或someDelegateArray[5]()之类的调用呢? -
您发布的代码在很多方面都是错误的,这是否相关?例如,您调用 void 方法并将结果分配为一个值。
-
我知道我的代码是错误的。我刚刚输入了一个示例来定义我的场景。实际上我想要调用表达式,它们是类中定义的方法,实际上由其他方法调用