比如Type,Assembly之类的这个方法
现在GetCustomAttributes返回的是 object[],用起来还要转换一下,略麻烦。不知道这个方法的返回值为什么不设置成Attribute[],是不是有什么原因
------解决思路----------------------
通用语言基础架构里注明(CLS)attribute不一定是Attribute的子类。通用语言运行平台(CLR,也就是你运行.NET的低基),无法保证返回值一定是Attribute类。非CLS兼容语言可以自定义attribute类型,所以返回的就不一定是Attribute了。ICustomAttributeProvider.GetCustomAttributes接口就需要指定如何获取非Attribute为父类的attribute。而MemberInfo.GetCustomAttributes实现了这个接口,所以自然就返回对象组了。
通用语言基础架构(Common Language Infrastructure,简称CLI)是一个开放的技术规范。它是由微软联合惠普以及英特尔于2000年向ECMA倡议的。通用语言基础架构定义了构成.NET Framework基础结构的可执行码以及代码的运行时环境的规范,它定义了一个语言无关的跨体系结构的运行环境,这使得开发者可以用规范内定义的各种高级语言来开发软件,并且无需修正即可将软件运行在不同的计算机体系结构上。