System.Reflection Namespace

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

The System.Reflection namespace contains types that retrieve information about assemblies, modules, members, parameters, and other entities in managed code by examining their metadata. These types also can be used to manipulate instances of loaded types, for example, to hook up events or to invoke methods. To dynamically create types, use the System.Reflection.Emit namespace.

Classes

Class Description
AmbiguousMatchException The exception that is thrown when binding to a member results in more than one member matching the binding criteria. This class cannot be inherited.
Assembly Represents an assembly, which is a reusable, versionable, and self-describing building block of a common language runtime application.
AssemblyAlgorithmIdAttribute Specifies an algorithm to hash all files in an assembly. This class cannot be inherited.
AssemblyCompanyAttribute Defines a company name custom attribute for an assembly manifest.
AssemblyConfigurationAttribute Specifies the build configuration, such as retail or debug, for an assembly.
AssemblyCopyrightAttribute Defines a copyright custom attribute for an assembly manifest.
AssemblyCultureAttribute Specifies which culture the assembly supports.
AssemblyDefaultAliasAttribute Defines a friendly default alias for an assembly manifest.
AssemblyDelaySignAttribute Specifies that the assembly is not fully signed when created.
AssemblyDescriptionAttribute Provides a text description for an assembly.
AssemblyFileVersionAttribute Instructs a compiler to use a specific version number for the Win32 file version resource. The Win32 file version is not required to be the same as the assembly's version number.
AssemblyFlagsAttribute Specifies a bitwise combination of AssemblyNameFlags flags for an assembly, describing just-in-time (JIT) compiler options, whether the assembly is retargetable, and whether it has a full or tokenized public key. This class cannot be inherited.
AssemblyInformationalVersionAttribute Defines additional version information for an assembly manifest.
AssemblyKeyFileAttribute Specifies the name of a file containing the key pair used to generate a strong name.
AssemblyKeyNameAttribute Specifies the name of a key container within the CSP containing the key pair used to generate a strong name.
AssemblyMetadataAttribute Defines a key/value metadata pair for the decorated assembly.
AssemblyName Describes an assembly's unique identity in full.
AssemblyProductAttribute Defines a product name custom attribute for an assembly manifest.
AssemblySignatureKeyAttribute Provides migration from an older, simpler strong name key to a larger key with a stronger hashing algorithm.
AssemblyTitleAttribute Specifies a description for an assembly.
AssemblyTrademarkAttribute Defines a trademark custom attribute for an assembly manifest.
AssemblyVersionAttribute Specifies the version of the assembly being attributed.
Binder Selects a member from a list of candidates, and performs type conversion from actual argument type to formal argument type.
ConstructorInfo Discovers the attributes of a class constructor and provides access to constructor metadata.
CustomAttributeData Provides access to custom attribute data for assemblies, modules, types, members and parameters that are loaded into the reflection-only context.
CustomAttributeExtensions Contains static methods for retrieving custom attributes.
CustomAttributeFormatException The exception that is thrown when the binary format of a custom attribute is invalid.
DefaultMemberAttribute Defines the member of a type that is the default member used by InvokeMember.
EventInfo Discovers the attributes of an event and provides access to event metadata.
FieldInfo Discovers the attributes of a field and provides access to field metadata.
IntrospectionExtensions Contains methods for converting Type objects.
LocalVariableInfo Discovers the attributes of a local variable and provides access to local variable metadata.
ManifestResourceInfo Provides access to manifest resources, which are XML files that describe application dependencies.
MemberInfo Obtains information about the attributes of a member and provides access to member metadata.
MethodBase Provides information about methods and constructors.
MethodInfo Discovers the attributes of a method and provides access to method metadata.
Missing Represents a missing Object. This class cannot be inherited.
Module Performs reflection on a module.
ParameterInfo Discovers the attributes of a parameter and provides access to parameter metadata.
PropertyInfo Discovers the attributes of a property and provides access to property metadata.
ReflectionContext Represents a context that can provide reflection objects.
ReflectionTypeLoadException The exception that is thrown by the Module..::.GetTypes method if any of the classes in a module cannot be loaded. This class cannot be inherited.
RuntimeReflectionExtensions Provides methods that retrieve information about types at run time.
TargetException Represents the exception that is thrown when an attempt is made to invoke an invalid target.
TargetInvocationException The exception that is thrown by methods invoked through reflection. This class cannot be inherited.
TargetParameterCountException The exception that is thrown when the number of parameters for an invocation does not match the number expected. This class cannot be inherited.
TypeDelegator Wraps a Type object and delegates all methods to that Type.
TypeInfo Represents type declarations for class types, interface types, array types, value types, enumeration types, type parameters, generic type definitions, and open or closed constructed generic types.

Structures

Structure Description
CustomAttributeNamedArgument Represents a named argument of a custom attribute in the reflection-only context.
CustomAttributeTypedArgument Represents an argument of a custom attribute in the reflection-only context, or an element of an array argument.
InterfaceMapping Retrieves the mapping of an interface into the actual methods on a class that implements that interface.
ParameterModifier Attaches a modifier to parameters so that binding can work with parameter signatures in which the types have been modified.

Interfaces

Interface Description
ICustomAttributeProvider Provides custom attributes for reflection objects that support them.
IReflect Interoperates with the IDispatch interface.
IReflectableType Represents a type that you can reflect over.

Delegates

Delegate Description
MemberFilter Represents a delegate that is used to filter a list of members represented in an array of MemberInfo objects.

Enumerations

Enumeration Description
AssemblyContentType Provides information about the type of code contained in an assembly.
AssemblyNameFlags Provides information about an Assembly reference.
BindingFlags Specifies flags that control binding and the way in which the search for members and types is conducted by reflection.
CallingConventions Defines the valid calling conventions for a method.
EventAttributes Specifies the attributes of an event.
FieldAttributes Specifies the attributes of a field.
GenericParameterAttributes Describes the constraints on a generic type parameter of a generic type or method.
MemberTypes Marks each type of member that is defined as a derived class of MemberInfo.
MethodAttributes Specifies flags for method attributes. These flags are defined in the corhdr.h file.
MethodImplAttributes Specifies flags for the attributes of a method implementation.
ParameterAttributes Defines the attributes that can be associated with a parameter. These are defined in CorHdr.h.
PropertyAttributes Defines the attributes that can be associated with a property.
ResourceAttributes Specifies the attributes for a manifest resource.
ResourceLocation Specifies the resource location.
TypeAttributes Specifies type attributes.