См. это обсуждение
Это практически невозможно в простом управляемом коде в Compact Framework 1.0.
В 2.0 это возможно, но подвержено ошибкам, хрупко и, что самое главное, НЕ гарантированно будет правильным (серьезный недостаток).
Я бы предложил вместо этого написать макрос, который может найти все экземпляры "((MethodInfo) MethodBase.GetCurrentMethod ())" и определить метод, в котором они находятся.
Просто конвертируем каждую строку следующим образом
".*\(\(MethodInfo\)MethodBase\.GetCurrentMethod\(\)\).*"
в
бросить новое исключение ((MethodInfo) MethodBase.GetCurrentMethod ()). Name);
- Скомпилируйте для некомпактного каркаса (исправляя вручную места, которые заменяет регулярное выражение, их не должно быть много)
- Запустить каждый метод в классах, где замены произошли с помощью отражения
- перехватывает возникающие исключения и печатает сообщение (имя метода) и первую строку трассировки стека.
Затем вы получите список того, что вам нужно вставить непосредственно на каждом сайте вызовов (вероятно, подкрепленный лениво созданным статическим полем, содержащим MethodInfo для каждого.
Это громоздко, но может работать достаточно хорошо, как предварительное обновление фреймворка, но если честно, пройти его можно и так быстро, и сделать это вручную.