4

对 C# 代码进行检测的最简单方法是什么?插装是指插入我自己的代码片段以在执行期间收集一些动态信息。

例如(星号代表一些不重要的代码):

for (int i=0; i<s.Length-2; ++i) {
  if (*)
    s = s.Substring(1, s.Length-2);
}

我想捕捉0被分配给ii递增和分配并调用Substring。通过捕获方法调用,我的意思是我知道它是什么方法以及参数的值或类似的值。

我尝试通过使用我自己的包装器包装方法调用来使用Roslyn来做到这一点,这可以 a)拦截值并存储它们(例如),b)调用实际方法并 c)返回此结果。唯一的问题是这种方法确实容易出错且困难(因为要涵盖许多不同的情况)。

我想知道是否已经有一些为此目的的库,或者有人知道更简单的方法。谢谢!

4

1 回答 1

0

您可以使用以下工具:
- Cecil
- ReFrameworker
- MBEL
- RAIL

于 2020-02-12T05:45:24.017 回答