对 C# 代码进行检测的最简单方法是什么?插装是指插入我自己的代码片段以在执行期间收集一些动态信息。
例如(星号代表一些不重要的代码):
for (int i=0; i<s.Length-2; ++i) {
if (*)
s = s.Substring(1, s.Length-2);
}
我想捕捉0被分配给i,i递增和分配并调用Substring。通过捕获方法调用,我的意思是我知道它是什么方法以及参数的值或类似的值。
我尝试通过使用我自己的包装器包装方法调用来使用Roslyn来做到这一点,这可以 a)拦截值并存储它们(例如),b)调用实际方法并 c)返回此结果。唯一的问题是这种方法确实容易出错且困难(因为要涵盖许多不同的情况)。
我想知道是否已经有一些为此目的的库,或者有人知道更简单的方法。谢谢!