问题描述
System.Reflection.MemberInfo只有函数叫做GetCustomAttributes,这个Custom单词的含义是自定义吧。难道就没有"非自定义"的Attribute吗,系统自带的就有很多类型啊,为什么没有一个叫做GetAttributes()的函数呢?
解决方案
解决方案二:
个人猜测是从il(CommonIntermediateLanguage)中来的。根据ECMAII.21,"Customattributesallowaninstanceofatypetobestoredwithanyelementofthemetadata".这里的custom的修饰的对象是metadata,是'自定义'的元数据(其他元数据包括类的定义,方法的定义等等等等)。中间语言中特性的写为:.custominstancevoidmyAttribute因此CustomAttribute可能不是指'自定义'的Attribute。
解决方案三:
系统自带的自定义属性和我们写的自定义属性都是同样性质的东西,是没必要分区对待的。而非自定义属性当然是有的,那是用GetProperties来获取的。
时间: 2024-11-18 09:27:51