System 2.0.0.0 4.0.0.0 System.Object

The class dynamically extends the type information associated with a type or object by adding, modifying, or hiding characteristics such as attributes, properties, and events. There can be multiple type description provider classes that offer metadata to a single .

There are two ways to associate a with a :

At design time, when the target class can be assigned the appropriate tag.

At run time, when one of the methods of the class can be called. These overloaded methods require either the target object or its class type.

The class relies on a parent object of the same type, supplied during construction. This allows classes that derive from to selectively override methods.

Instances of are only built upon demand, minimizing the impact of custom type information on performance.

This class cannot be inherited.

Provides supplemental metadata to the .

- Constructor
  2.0.0.0
  4.0.0.0

  This constructor is equivalent to calling the other constructor with a parameter value that is null.

  Initializes a new instance of the class.

- Constructor
  2.0.0.0
  4.0.0.0

  If the parameter is null, all methods will return default values. Otherwise, all methods will delegate to the methods of .

  The following table shows the default return values for methods.

  Method

  Default return value

  null

  A newly created object through a call to the method.

  A default instance of a class.

  A default instance of a class.

  The first parameter.

  Initializes a new instance of the class using a parent type description provider.

  The parent type description provider.
- Method
  2.0.0.0
  4.0.0.0
  System.Object `` `` `` ``

  The specified by the parameter is passed in by the method of the class. If is not null, the service provider can be used by the type description provider to obtain additional context about the creation call.

  The method is virtual and, by default, returns the result of the method if is null. If is null, this method will invoke the method of the parent provider.

  Creates an object that can substitute for another data type.

  The substitute .

  An optional service provider. The type of object to create. This parameter is never null. An optional array of types that represent the parameter types to be passed to the object's constructor. This array can be null or of zero length. An optional array of parameter values to pass to the object's constructor.
- Method
  2.0.0.0
  4.0.0.0
  System.Collections.IDictionary ``

  A may need to perform complex operations on collections of metadata. Because types are not unloaded for the life of a domain, the class will automatically cache the results of these operations based on type. However, some operations use live object instances. These operations cannot be cached within the class because caching them would prevent the object from being garbage collected. Instead, the class allows for a per-object cache, accessed as an of key/value pairs, to exist on an object. The method returns an instance of this cache. The method will return null if there is no supported cache for an object.

  The default used by examines the object to see if it is a sited component that implements the interface. If the object is, it uses the dictionary service to store the object's cache. Otherwise, the object it returns null. Other type description providers may provide their own implementation here. For example, dependency objects can just attach a property of type .

  Gets a per-object cache, accessed as an of key/value pairs.

  An if the provided object supports caching; otherwise, null.

  The object for which to get the cache.
- Method
  2.0.0.0
  4.0.0.0
  System.ComponentModel.ICustomTypeDescriptor ``

  An extended type descriptor is a custom type descriptor that offers properties that other objects have added to this object, but that are not actually defined on the object. For example, in the dnprdnshort component model, objects that implement the interface can attach properties to other objects that reside in the same logical container. The overloaded methods do not return a type descriptor that provides these extra extended properties. The method returns the set of these extended properties. The will automatically merge the results of these two property collections. While the dnprdnshort component model supports only extended properties, can be used for extended attributes as well as events, if the type description provider supports it.

  is virtual and, by default, returns a custom type descriptor that returns empty results if no parent provider was passed. If a parent provider was passed, this method will invoke the parent provider's method.

  Gets an extended custom type descriptor for the given object.

  An that can provide extended metadata for the object.

  The object for which to get the extended type descriptor.
- Method
  4.0.0.0
  System.ComponentModel.IExtenderProvider[] `` To be added.

  Gets the extender providers for the specified object.

  An array of extender providers for .

  The object to get extender providers for.
- Method
  2.0.0.0
  4.0.0.0
  System.String `` To be added.

  Gets the name of the specified component, or null if the component has no name.

  The name of the specified component.

  The specified component.
- Method
  2.0.0.0
  4.0.0.0
  System.Type ``

  The method is a lower-level version of the method. If no custom type descriptor can be located for an object, is called to perform normal reflection against the object.

  Use this method overload if you have called a type descriptor member that uses an instance instead of a type.

  Performs normal reflection against the given object.

  The type of reflection for this .

  An instance of the type (should not be null).
- Method
  2.0.0.0
  4.0.0.0
  System.Type ``

  The method is a lower-level version of the method. If no custom type descriptor can be located for an object, is called to perform normal reflection against the object.

  Use this method overload if you have called a type descriptor member that uses a type instead of an instance.

  Performs normal reflection against a type.

  The type of reflection for this .

  The type of object for which to retrieve the .
- Method
  2.0.0.0
  4.0.0.0
  System.Type `` ``

  The method is a lower-level version of the method. If no custom type descriptor can be located for an object, is called to perform normal reflection against the object.

  Performs normal reflection against the given object with the given type.

  The type of reflection for this .

  The type of object for which to retrieve the . An instance of the type. Can be null.
- Method
  4.0.0.0
  System.Type ``

  The method reverses the method to convert a reflection type back into a runtime type. Using the method is preferred over using the property, which was used in earlier versions to return the runtime type.

  Converts a reflection type into a runtime type.

  A that represents the runtime equivalent of .

  The type to convert to its runtime equivalent.
- Method
  2.0.0.0
  4.0.0.0
  System.ComponentModel.ICustomTypeDescriptor `` To be added.

  Gets a custom type descriptor for the given object.

  An that can provide metadata for the type.

  An instance of the type. Can be null if no instance was passed to the .
- Method
  2.0.0.0
  4.0.0.0
  System.ComponentModel.ICustomTypeDescriptor `` To be added.

  Gets a custom type descriptor for the given type.

  An that can provide metadata for the type.

  The type of object for which to retrieve the type descriptor.
- Method
  2.0.0.0
  4.0.0.0
  System.ComponentModel.ICustomTypeDescriptor `` ``

  This method is prototyped as virtual and, by default, returns an empty descriptor if no parent provider was passed. If a parent provider was passed, this method will invoke the parent provider's method.

  Gets a custom type descriptor for the given type and object.

  An that can provide metadata for the type.

  The type of object for which to retrieve the type descriptor. An instance of the type. Can be null if no instance was passed to the .
- Method
  4.0.0.0
  System.Boolean `` To be added.

  Gets a value that indicates whether the specified type is compatible with the type description and its chain of type description providers.

  true if is compatible with the type description and its chain of type description providers; otherwise, false.

  The type to test for compatibility.