与Get properties in order of declaration using reflection类似,我希望按照声明的顺序获取属性。显然,我指的是AllowMultiple
为true
设置为AttributeUsage
的属性。
我想知道MemberInfo.GetCustomAttributes或Attribute.GetCustomAttributes是否保证任何排序(我在MSDN中找不到任何内容)。
答案 0 :(得分:1)
C#语言规范在17.2 Attribute specification中说明:
在这样的列表中指定属性的顺序,以及附加到同一程序实体的部分的顺序并不重要。
例如,属性规范
[A][B]
,[B][A]
,[A, B]
和[B, A]
是等效的。
因此编译器可以根据需要重新排序它们,并且检索属性的方法不能保证以任何顺序返回它们。
您当然可以使用[CallerLineNumber]
使用{{1}}。