如何获取某个方法的souce code?

问题描述

已知道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

如何获取某个方法的souce code?的相关文章

Spring中的AOP(五)——在Advice方法中获取目标方法的参数

获取目标方法的信息     访问目标方法最简单的做法是定义增强处理方法时,将第一个参数定义为JoinPoint类型,当该增强处理方法被调用时,该JoinPoint参数就代表了织入增强处理的连接点.JoinPoint里包含了如下几个常用的方法: Object[] getArgs:返回目标方法的参数 Signature getSignature:返回目标方法的签名 Object getTarget:返回被织入增强处理的目标对象 Object getThis:返回AOP框架为目标对象生成的代理对象  

获取Java方法参数的名称

最近有个需求,需要获取java方法参数的名称,网上查了下,然后自己也实践了下,总结出3点: 1.能不能获取方法参数的名称取决于class文件里是否含有LocalVariableTable. 2.javac编译生成的class文件不含有LocalVariableTable,但是eclipse编译生成的class文件却含有LocalVariableTable. 3.有2种方式可以获得,用Asm和Javassist,Asm的性能略高. 贴代码: maven依赖: <dependency> <g

Extjs如何获取后台方法返回的值然后前台接收值再把此值放入action url里进行load加载

问题描述 Extjs如何获取后台方法返回的值然后前台接收值再把此值放入action url里进行load加载 前台://把上传的 文件发送到相应Action function upload(){ var tml = document.getElementById(""fileId""); if(tml.value == ''){ Ext.MessageBox.alert('提示''请选择需要上传文件'); return; } Ext.Ajax.request({ u

Windows 7系统TrustedInstaller权限获取的方法

我们知道系统里面有很多权限,其中有一个叫做TrustedInstaller,只有获取了这个权限才能删除Windows.old文件,可是很多用户不知道怎么获取TrustedInstaller权限,其实方法很简单,下面就由小编来教大家Win7系统TrustedInstaller权限获取的方法吧! 方法/步骤: 1.获得Windows系统TrustedInstaller权限的方法之一 我打开了一个系统盘中Windows文件夹中的Boot文件做实验,右键点击删除时,弹出文件夹访问被拒绝的窗口,提示:您需

ASP.NET中实现获取调用方法名_实用技巧

本文实例讲述了ASP.NET中实现获取调用方法名的技巧.分享给大家供大家参考.具体实现方法如下: 在写记录日志功能时,需要记录日志调用方所在的模块名.命名空间名.类名以及方法名,想到使用的是反射(涉及到反射请注意性能),但具体是哪一块儿还不了解,于是搜索,整理如下:   需要添加相应的命名空间: 复制代码 代码如下: using System; using System.Diagnostics; using System.Reflection; 如果仅是获取当前方法名,可以使用如下代码: 复制代

ASP.NET连接数据库并获取数据方法总结_实用技巧

本文实例讲述了ASP.NET连接数据库并获取数据方法.分享给大家供大家参考,具体如下: *连接对象的用法SqlConnection,SqlCommand,SqlDataAdapter *数据访问方式的写法 1.获取数据: //引用这两个命名空间 using System.Data.SqlClient; using System.Data; // 初始化连接对象 SqlConnection conn = new SqlConnection(); conn.ConnectionString = "U

Java中Spring获取bean方法小结_java

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中获取Spring配置的bean呢? Bean工厂(com.springframework.beans.factory.BeanFactory)是Spring框架最核心的接口,它提供了高级IoC的配置机制.BeanFactory使管理不同类型的Java对象成为可能,应用上下文(com.springframework.context.ApplicationContext)建立在BeanFactory基础之上,提供

ashx文件获取$.ajax()方法发送的数据_jquery

今天在使用Jquery的ajax方法发送请求时,发现在后台中使用ashx文件无法接收到ajax方法中传递的参数,上网查了一下原因后发现了问题所在,原来是我在$.ajax方法中指明了"contentType: 'application/json; charset=utf8'",所以才导致了在ashx文件中处理请求时无法获取传递到服务器端的参数, 正确的写法如下: $.ajax({ url: '/Handler.ashx?operFlag=test', type: 'POST', /* 请

Android 百度地图Sha1获取的方法

Android 百度地图Sha1获取的方法 场景一 由于最近项目钟要用到定位功能因此肯定需要用到地图以及地位功能,相信大家也知道目前国内比较出名的地图像百度.高德.腾讯等这些还是用到比较多的,于是思考了一下决定还是用百度,相信老司机们都知道的哈! 第一步到百度开发者平台注册一个账号一般是手机号或者短信动态验证码登录我注册了所以这里不再赘述 第二步就是创建一个应用程序这个名字一般是随意取的这个不用太在意如下图所示 3.获取Sha1这里列举两种方式如果其他有更好的办法可以在下面留言哈! 第一种就是通