首先要获取对象的类型,根据类型再获取Attribute,同一类型的对象获取到的Attribute是相同的。
static void Main(string[] args){
Type ty=typeof(SystemWindowsFormsButton);
foreach (Attribute attribute in tyGetCustomAttributes(true))
{
ConsoleWriteLine(attribute);
}
ConsoleRead();
}
上述代码的结果如下:
SystemRuntimeInteropServicesComVisibleAttribute
SystemRuntimeInteropServicesClassInterfaceAttribute
SystemWindowsFormsSRDescriptionAttribute
SystemComponentModelDesignerAttribute
SystemComponentModelDesignerAttribute
SystemWindowsForms,Allow
SystemComponentModelDefaultPropertyAttribute
SystemComponentModelDefaultEventAttribute
SystemComponentModelDesignerAttribute
SystemComponentModelDesignSerializationDesignerSerializerAttribute
SystemComponentModelDesignerCategoryAttribute
ClassgetDeclaredMethod() 是获取这个类中所有的方法,返回的是Method[]如果有参数,第1个是方法名称,第2个是该方法的所有参数数组,这样返回的是Method这个对象Methodinvoke() 传入调用方法的类,另一个是调用这个方法所需要的参数,如果该方法没有参数,可以不填写,在JDK1,4之前,第2个参数是传入一个数组的,但是在jdk15之后,可以不传数组,多个参数用逗号隔开 不知道你听明白没
那就需要利用扩展方法,现将T的Type获取到,方法如下:
public static class Extensions
{
public static Type GetListItemType<T>(this IList<T> list)
{
return typeof(T);
}
}
以上就是关于C#怎么利用反射来获取一个对象的 所有Attribute全部的内容,包括:C#怎么利用反射来获取一个对象的 所有Attribute、Java反射机制获取set()方法 并且为set()方法传值、怎么通过反射获得实体类中List类型的对象的各个属性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)