给定以下代码..
public static class Simulate
{
public static bool Boolean(bool b)
{
return b;
}
}
我想检查表达式是否使用这个静态函数。我想避免字符串类型的反射,以使代码对重构更友好,这就是为什么我要尝试执行以下操作,类似于this。我尝试了以下代码:
protected virtual Expression VisitMethodCall(MethodCallExpression m)
{
if (m.Method == Simulate.Boolean)
但这不起作用,所以我尝试了这个:
Expression<Action> fb = () => Simulate.Boolean(true);
string booleanName = fb.Body.ToString();
if (m.Method.DeclaringType == typeof(Simulate))
{
if (m.Method.Name == booleanName)
然而,如预期的那样,上面的代码返回Boolean(true)。但是有什么办法我只能得到布尔字符串吗?