怎样用反射获取委托信息?

Cloveaf 2013-06-20 10:42:19
比如delegate int MyDelegate(string name);
怎样获取其返回类型int、输入类型string及其参数名称name?
...全文
336 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cloveaf 2013-06-27
  • 打赏
  • 举报
回复
人生导师 2013-06-22
  • 打赏
  • 举报
回复
委托也是一种类型了,具体实现可以参考我的博客:http://blog.csdn.net/lizhi3186575/article/details/8986877
s490638622 2013-06-21
  • 打赏
  • 举报
回复
wyfde123 2013-06-21
  • 打赏
  • 举报
回复
Type不是有个GetEvents()方法么~~
Cloveaf 2013-06-20
  • 打赏
  • 举报
回复
UP。我的需求是,一个类中有若干个事件,我要根据这些事件写一个代码生成器。比如 事件 public event MyDelegate MyEvent; 我要生成 public int OnMyEvent(string name) 有其他办法吗?
Cloveaf 2013-06-20
  • 打赏
  • 举报
回复
GetProperties只是得到属性的信息,要得到真实的MethodInfo的话如果用GetValue就得构造其实例。能不能不创建实例就能获取的?
请叫我卷福 2013-06-20
  • 打赏
  • 举报
回复
引用 6 楼 Cloveaf 的回复:
[quote=引用 3 楼 xiaozhi_5638 的回复:] assembly.GetType 委托也是一种类型 namespace AA { public class BB { } public delegate void MyDelegate(string name); } Type t = assembly.GetType("AA.BB"); //获取类型BB 委托类似 Type t = assembly.GetType("AA.MyDelegate");
获取到t然后呢?我知道委托都继承自Delegate,里面有一个类型为MethodInfo的Method属性。怎样不构造实例获取到这个MethodInfo?[/quote] 跟获取其他类型中的方法一样啊 Type.GetProperties();
Cloveaf 2013-06-20
  • 打赏
  • 举报
回复
引用 3 楼 xiaozhi_5638 的回复:
assembly.GetType 委托也是一种类型 namespace AA { public class BB { } public delegate void MyDelegate(string name); } Type t = assembly.GetType("AA.BB"); //获取类型BB 委托类似 Type t = assembly.GetType("AA.MyDelegate");
获取到t然后呢?我知道委托都继承自Delegate,里面有一个类型为MethodInfo的Method属性。怎样不构造实例获取到这个MethodInfo?
Cloveaf 2013-06-20
  • 打赏
  • 举报
回复
引用 1 楼 rinall 的回复:
什么叫获取? 你好像没明白委托 委托只是一种类型 是需要NEW的
我的意思是,比如我定义了一个类MyClass,那么我可以用typeof(MyClass).GetMembers()获取其所有成员信息(方法名、返回值、参数等)。既然委托也是一种类型,是不是也可以得到类似的信息?
请叫我卷福 2013-06-20
  • 打赏
  • 举报
回复
引用 3 楼 xiaozhi_5638 的回复:
assembly.GetType 委托也是一种类型 namespace AA { public class BB { } public delegate void MyDelegate(string name); } Type t = assembly.GetType("AA.BB"); //获取类型BB 委托类似 Type t = assembly.GetType("AA.MyDelegate");
前面加上: Assembly assembly = Assembly.LoadFrom(...);
请叫我卷福 2013-06-20
  • 打赏
  • 举报
回复
assembly.GetType 委托也是一种类型 namespace AA { public class BB { } public delegate void MyDelegate(string name); } Type t = assembly.GetType("AA.BB"); //获取类型BB 委托类似 Type t = assembly.GetType("AA.MyDelegate");
肖无疾 2013-06-20
  • 打赏
  • 举报
回复
引用 1 楼 rinall 的回复:
什么叫获取? 你好像没明白委托 委托只是一种类型 是需要NEW的
你好像没明白什么叫反射
rinall 2013-06-20
  • 打赏
  • 举报
回复
什么叫获取? 你好像没明白委托 委托只是一种类型 是需要NEW的
Cloveaf 2013-06-20
  • 打赏
  • 举报
回复
再次求助,有人知道吗?

111,092

社区成员

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

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

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