title: Why is TypeDescriptor.GetProperties behaving different for types and objects when working with ICustomTypeDescriptor
body: <p>I created a generic class Group which implements ICustomTypeDescriptor. 
  It just adds the properties of the generic type parameter to its own properties.</p>
  
  <pre><code>    private void InitializeDisplayedProperties()
      {
          _DisplayedProperties.Add(TypeDescriptor.GetProperties(typeof(Group&lt;T&gt;))["LastItem"]);
          _DisplayedProperties.Add(TypeDescriptor.GetProperties(typeof(Group&lt;T&gt;))["GroupId"]);
          _DisplayedProperties.Add(TypeDescriptor.GetProperties(typeof(Group&lt;T&gt;))["Count"]);
  
          foreach (PropertyDescriptor myDescr in TypeDescriptor.GetProperties(typeof(T)))
          {
              _DisplayedProperties.Add(myDescr); 
         }
      }
  </code></pre>
  
  <p>Why does the following code behave different?</p>
  
  <pre><code>TypeDescriptor.GetProperties(typeof(Group&lt;IGroupedObject&gt;)).Count //Returns 3 Items of Group only
  TypeDescriptor.GetProperties(new Group&lt;IGroupedObject&gt;()).Count //Returns all 31 Items of Group and generic type parameter
  </code></pre>
  
  <p>I assume this must have something to do with the fact that the properties are generated at instance time of the object. But isn't the number of attributes already defined by the used types?</p>
  
  <p>Is it possible to work around this behaviour without instantiating the type?</p>