受到SO問題的啓發。 Attribute類對於IsDefined()方法有幾個重載。所涵蓋的屬性應用於Assembly,Module,MemberInfo,ParameterInfo。 MemberInfo重載包括PropertyInfo,FieldInfo,EventInfo,MethodInfo,ConstructorInfo。爲什麼Attributes.IsDefined()缺少重載?
這照顧了大部分AttributeTargets。除了一個Biggy:Attribute.IsDefined(Type,Type)沒有重載,因此您可以檢查某個屬性是否在類中定義。或者是一個結構,委託或枚舉。
不是說這是一個真正的問題,Type.GetCustomAttributes()可以解決這個問題。但是所有的BlahInfo類型都有。我想知道缺乏對稱性。我不能指責爲什麼這會是類型的問題。猜測繼承問題並不能解釋給我。在組合中使用ValueType可能是一個主角,但仍然沒有意義。我不買「他們忘了」,他們從來不會這樣做。
爲什麼超負荷缺失?
ICustomAttributeProvider的重載也會有很大的意義。 – 2016-06-23 16:40:52