Как вы говорите, это нелегко и, возможно, даже невозможно. Если я правильно помню, код будет включать адрес компилятора JIT для метода, который не был скомпилирован. Поэтому, когда вы попытаетесь вызвать этот метод, JIT-компилятор выполнит свою работу и вставит адрес во вновь скомпилированный метод. Если вы можете изменить этот адрес, вы сможете вставить вызов в свой собственный код. Как бы вы сделали это незамеченным, вне меня. Я, конечно, надеюсь, что CLR обнаружит этот вид вмешательства.
Я не думаю, что Profiling API поможет вам в этом случае (как предложил Леппи), так как вы не пытаетесь изменить MSIL. Если вы думаете иначе , эта статья может оказаться полезной, поскольку она описывает, что вы должны сделать, чтобы реализовать то, что делает TypeMock.