SO sorusundan ilham alındı. Attribute sınıfı, IsDefined () yöntemi için birkaç aşırı yüklemeye sahiptir . Derleme, Modül, MemberInfo, ParameterInfo için uygulanan özniteliklerdir. MemberInfo aşırı yükleme özelliği PropertyInfo, FieldInfo, EventInfo, MethodInfo, ConstructorInfo kapsar.
Bu, AttributeTargets'ın çoğunu halleder. Bir biggy dışında: Attribute.IsDefined (Type, Type) için aşırı yük yoktur, böylece sınıfta bir özniteliğin tanımlanıp tanımlanmadığını kontrol edebilirsiniz. Ya da bu konuda bir yapı, delege veya numaralandırma.
Bu gerçek bir sorun değil, Type.GetCustomAttributes () bunu düzeltebilir. Ancak tüm BlahInfo türleri de buna sahiptir. Simetri eksikliğini merak ediyorum. Bunun Type için neden sorun olabileceğine parmak basamıyorum. Kalıtım sorununu tahmin etmek bana açıklamıyor. Karışımda ValueType'ın bulunması bir olası satış olabilir, yine de anlamlı değildir. "Unuttular" satın almıyorum, asla yapmıyorlar.
Bu aşırı yükleme neden eksik?
ICustomAttributeProvider
çok mantıklı olurdu.