-
An assembly can be used to discover information about the type it contains.
-
A System.Type object can be used to discover information about its constructors, methods , properties, and fields.
-
A ConstructorInfo object can be used to create object instances.
-
A MethodInfo object can be used to invoke methods on a given type.
-
A PropertyInfo object and a FieldInfo object can be used to manipulate an object's state.
-
Custom attributes can be defined to extend the metadata of a language element.
-
Custom attributes can also be used to retrieve extended metadata at runtime.