Existe uma maneira genérica de chamar outro método sempre que um método é chamado em C #

Eu tenho um método algo como isto:

public Something MyMethod()
{
    Setup();

    Do something useful...

    TearDown();

    return something;
}

Os métodos Setup e TearDown estão na classe base.

O problema que estou tendo é que preciso escrever esse tipo de método repetidamente com as chamadas de método Setup () e TearDown ().

EDIT: A parte complicada deste método é que "Faça algo útil ..." é específico apenas para este método. Esta parte é diferente para cada método que eu criar.

Além disso, eu posso ter MyMethod2, MyMethod3, em uma única classe. Em todos os casos, eu gostaria de executar a instalação e desmontagem

Existe uma maneira elegante de fazer isso sem ter que escrever isso toda vez?

Talvez eu esteja delirando, mas é uma maneira de adicionar um atributo ao método e interceptar a chamada do método, para que eu possa fazer coisas antes e depois da chamada?

questionAnswers(2)

yourAnswerToTheQuestion