有条件的Skip方法使用.NET Reflector执行

时间:2014-07-03 06:13:49

标签: .net system.reflection

我们可以使用.NET反射器执行方法。但有没有办法在执行方法时跳过基于某些条件的特定步骤? 例如:

public fn1()
{
  int a=1,b=2,c=3;
  //Step1
  a=b;
  //Ste2
  b=c;
  //Step3
  c+=1;
}

这些步骤将在Excel中,附加一列"状态" [有效/无效]

现在,使用反射,有没有办法跳过标记为非活动的步骤?

1 个答案:

答案 0 :(得分:1)

我认为可能会有一些关于反思的误解。当您在编译时没有自己的名字时,反思只不过是一种访问您的课程和成员的方法。

所以,不,当你致电fn1时,你无法神奇地跳过一步。无论是明确调用还是使用反射进行调用。

但是,您可以设计代码,以允许调用者跳过该步骤(即使没有反射):

public fn1(bool executeStep2 = true)
{
    int a=1,b=2,c=3;
    //Step1
    a=b;
    //Step2
    if (executeStep2) b=c;
    //Step3
    c+=1;
}

通过致电fn1(executeStep2: false),您将跳过第2步。