【发布时间】:2011-03-28 22:06:49
【问题描述】:
我有一个自定义属性:
public class MenuItemAttribute : Attribute
{
}
还有一个有几个方法的类:
public class HelloWorld
{
[MenuItemAttribute]
public void Shout()
{
}
[MenuItemAttribute]
public void Cry()
{
}
public void RunLikeHell()
{
}
}
我怎样才能只获得用自定义属性修饰的方法?
到目前为止,我有这个:
string assemblyName = fileInfo.FullName;
byte[] assemblyBytes = File.ReadAllBytes(assemblyName);
Assembly assembly = Assembly.Load(assemblyBytes);
foreach (Type type in assembly.GetTypes())
{
System.Attribute[] attributes = System.Attribute.GetCustomAttributes(type);
foreach (Attribute attribute in attributes)
{
if (attribute is MenuItemAttribute)
{
//Get me the method info
//MethodInfo[] methods = attribute.GetType().GetMethods();
}
}
}
我现在需要的是获取方法名,返回类型,以及它接受的参数。
【问题讨论】:
标签: c# reflection custom-attributes