使用反射按声明的顺序获取属性

时间:2014-11-13 17:47:34

标签: c# reflection

Get properties in order of declaration using reflection类似,我希望按照声明的顺序获取属性。显然,我指的是AllowMultipletrue设置为AttributeUsage的属性。

我想知道MemberInfo.GetCustomAttributesAttribute.GetCustomAttributes是否保证任何排序(我在MSDN中找不到任何内容)。

1 个答案:

答案 0 :(得分:1)

C#语言规范在17.2 Attribute specification中说明:

  

在这样的列表中指定属性的顺序,以及附加到同一程序实体的部分的顺序并不重要。

     

例如,属性规范[A][B][B][A][A, B][B, A]是等效的。

因此编译器可以根据需要重新排序它们,并且检索属性的方法不能保证以任何顺序返回它们。

您当然可以使用[CallerLineNumber]使用{{1}}。