我正在寻找一种方法来读取方法/函数调用的内容,类似于Visual Studio的“Go To Implementation”功能(或调试中的F11)但使用代码。
例如,如果我有一个包含以下代码的C#.cs文件:
var characters = "AAAAAABBBBBBCCCCCCDDDDDD";
var position = 0;
var newPosition;
//Example #1
myObject.FirstSixCharacters = characters.SubString(position, 6);
position += 6;
//Example #2
myObject.SecondSetOfSixCharacters = AStaticObject.AMethod(characters, position, 6, out newPosition);
position += newPosition;
我想知道是否有办法以编程方式“放入”'AStaticObject'对象的'AMethod'方法并读取代码?
要将问题置于上下文中,我有一个大型企业解决方案,实质上是将大量字符解析为许多DTO字段。我正在考虑编写一些可以打开“解析器”.cs文件的内容,读取代码的内容,然后根据分配时应用的处理确定每个DTO字段的位置和长度。
对于语句赋值是简单的“子字符串”函数(按照示例#1,上面)的结果,这是非常简单的。但是在代码中,代码使用静态对象/方法来提取字符串的字符并更新位置变量(按照示例#2,上面)。这引出了一个问题 - “我怎样才能以编程方式读取.cs文件中的代码,并在必要时跟踪对象/方法在代码中出现时的调用并读取这些.cs文件的内容”?
注意:我试图分析的代码是未编译的,因此不需要反编译器来实现结果。