有没有办法列出 .Net 程序集中某个方法的所有调用和硬编码字符串参数?
例如,假设在我的程序集中,在命名空间 A、类 B 中,有一个具有以下签名的实例方法:
void Test(string someString, int someOtherParm, string someOtherString );
从程序集中的多个位置多次调用此方法。 我希望能够构建此方法的所有调用以及 someString/someOtherString 的值的列表(假设它们是硬编码的)。
换句话说,我喜欢提取一个调用列表,如下例所示,如果它们发生在程序集中的某个地方:
Test("some text", 8, "some other text");
提前致谢, R。
For example, assume that in my assembly, in Namespace A, Class B, there is an instance method with the following signature:
void Test(string someString, int someOtherParm, string someOtherString );
This method is called multiple times, from multiple places in the assembly.
I would like to be able build a list of all invocations of this method and the value of the someString/someOtherString (assuming they are hardcoded).
In other words, I like to extract a list of calls like the example one below, if they happen in the assembly somewhere:
Test("some text", 8, "some other text");
Thanks in advance,
R.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 Cecil 库,这是一个非常强大的 IL 检查和修改 API。您将需要创建一个“方法访问者”,它将扫描调用指令并尝试定位加载到堆栈上的常量字符串。
You could use the Cecil library, which is a very powerful IL inspection and modification API. You will want to create a "method visitor" that will scan for call instructions and attempt to locate constant strings loaded onto the stack.