title: Why is Attributes.IsDefined() missing overloads?
body: <p>Inspired by an SO question.  The Attribute class has several overloads for the <a href="http://msdn.microsoft.com/en-us/library/system.attribute.isdefined%28VS.85%29.aspx" rel="noreferrer">IsDefined()</a> method. Covered are attributes applied to Assembly, Module, MemberInfo, ParameterInfo.  The MemberInfo overload covers PropertyInfo, FieldInfo, EventInfo, MethodInfo, ConstructorInfo.</p>
  
  <p>That takes care of most of the AttributeTargets.  Except for one biggy: there is no overload for Attribute.IsDefined(Type, Type) so that you could check if an attribute is defined on a class.  Or a struct, delegate or enum for that matter.</p>
  
  <p>Not that this is a real problem, Type.GetCustomAttributes() can fix that.  But all of the BlahInfo types have this too.  I wonder at the lack of symmetry.  I can't put a finger on why this would be problem for Type.  Guessing at an inheritance problem doesn't explain it to me.  Having ValueType in the mix might be a lead, still doesn't make sense.  I don't buy "they forgot", they never do.</p>
  
  <p>Why is this overload missing?</p>