问题描述
已知道CS文件并读取了CS文本如文本中有很多方法[attribute]publicvoida(){....}publicvoidb(){...}目前只给方法名如a想得到整块a方法的文本[attribute]publicvoida(){内容....}和a方法里的文本内容....如何得到?.NET有方法吗?
解决方案
解决方案二:
试试看用正则表达式来处理。
解决方案三:
不会写正则,假如CS中有多个同名方法参数不同如何匹配得到数组
解决方案四:
你是说在一个A.DLL里面写了一个方法,然后在另外一个B.DLL里面引用A.DLL然后想获取A.DLL方法的具体实现代码,以文本的形式获取出来是吗?
解决方案五:
引用2楼qq_23969557的回复:
不会写正则,假如CS中有多个同名方法参数不同如何匹配得到数组
这不就是方法的重载吗?直接给参数就能调用了吧。.cs文件打开后就可以看到方法体了吧。如果你是说查看封装到.dll里面的类的函数的具体实现过程,那你需要一个反编译软件,如iLspy
解决方案六:
不是是文本处理不需要编译由于前期设计缺陷我们需要对一批方法进行重写代码量比较大所以想直接根据方法名得到相关的信息进行替换减少代码工作我已经说明直接读取CS文本文件了
解决方案七:
引用5楼qq_23969557的回复:
不是是文本处理不需要编译由于前期设计缺陷我们需要对一批方法进行重写代码量比较大所以想直接根据方法名得到相关的信息进行替换减少代码工作我已经说明直接读取CS文本文件了
你们这批人中间有没有人具有词法分析、语法分析知识。如果有,可以考虑找到一个c#词法分析器(算是以前上的《编译原理课》课程没有白上),来处理。但是前提是要懂得基本的分析概念,而不是什么简单地匹配字符。
解决方案八:
用Roslyn
解决方案九:
正常情况下,你是需要写(或者用工具生成)半个编译器(前端,语法/词法分析部分)不过现在有了:
解决方案十:
引用7楼caozhy的回复:
用Roslyn
这个好,学习学习
时间: 2024-11-01 12:46:22