在.net的某一个方法中,能否取得这个方法的名称,参数个数,参数的定义名称,参数的值?

snryang 2009-03-06 10:52:20
RT:
比如像js中的arguments 一样
...全文
170 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyeede 2009-03-06
  • 打赏
  • 举报
回复
Type t = typeof(String);
MethodInfo substr = t.GetMethod("Substring",new Type[] { typeof(int), typeof(int) });
我姓区不姓区 2009-03-06
  • 打赏
  • 举报
回复

static void Main(string[] args)
{
Print("sfd");
}

static void Print(string s)
{
MethodBase mb = MethodBase.GetCurrentMethod();
Console.WriteLine(mb.Name);
foreach (ParameterInfo pi in mb.GetParameters())
Console.WriteLine(pi.Name);
}
北京的雾霾天 2009-03-06
  • 打赏
  • 举报
回复
给类库添加Xml说明文档也很简单,只需要在项目属性里指定输出Xml文档就行了。方法使用///注释。
ztenv 2009-03-06
  • 打赏
  • 举报
回复
反射,
北京的雾霾天 2009-03-06
  • 打赏
  • 举报
回复
应该参考一下VS的作法,不是直接访问类库,而是访问类库的Xml文档,只要你的Xml文档写的详细就行。使用程序读Xml是很方便的。
我姓区不姓区 2009-03-06
  • 打赏
  • 举报
回复
参考:

static void Main(string[] args)
{
try
{
Print("sfd");
}
catch (Exception ex)
{

Console.WriteLine("抛出异常的方法名:" + ex.TargetSite.Name);
foreach (ParameterInfo p in ex.TargetSite.GetParameters())
{
Console.WriteLine("参数:" + p.Name + ",类型:" + p.ParameterType.FullName);
}
}
}

static void Print(string s)
{
throw new Exception();
}

天乐 2009-03-06
  • 打赏
  • 举报
回复
参数的值 的获取有点难度,反射只能取到方法的名称,参数个数,参数的类型

获取参数的值需要处理栈了
天乐 2009-03-06
  • 打赏
  • 举报
回复
可以,使用反射
snryang 2009-03-06
  • 打赏
  • 举报
回复
比如说:执行方法出现异常时,将方法的名称及调用的参数信息都保存起来。
我姓区不姓区 2009-03-06
  • 打赏
  • 举报
回复
这么做的目的是什么
feifeiyiwen 2009-03-06
  • 打赏
  • 举报
回复
获取参数的值需要处理栈了
天乐 2009-03-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 snryang 的回复:]
谢谢!

现在知道了参数定义的名称。但是得到参数的值,如何得到呢?
[/Quote]

这个问题似乎巨难
snryang 2009-03-06
  • 打赏
  • 举报
回复
谢谢!

现在知道了参数定义的名称。但是得到参数的值,如何得到呢?

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧