Условно пропустить выполнение метода с использованием.NET Reflector

Мы можем выполнить метод, используя.NET рефлектор. Но есть ли способ пропустить определенный шаг, основанный на каком-то условии, при выполнении метода? Например:

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

Эти шаги будут в Excel с дополнительным столбцом "Статус"[Активный / Неактивный]

Теперь, используя отражение, есть ли способ пропустить шаг, который помечен как неактивный?

1 ответ

Решение

Я думаю, что могут быть некоторые недоразумения по поводу отражения. Reflection - это не что иное, как способ получить доступ к вашим классам и членам, когда у вас нет их имен во время компиляции.

Так что нет, когда вы звоните 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.

Другие вопросы по тегам