 | Invoking Overloaded Methods Using Reflection Static and instance methods can be invoked via reflection by obtaining a MethodInfo object for the desired member and calling the Type class's Invoke method. When invoking overloaded methods, the call to obtain the method information must be modified. |
 | Identifying the Namespaces in an Assembly Sometimes it is necessary to find the names of all of the namespaces that are defined in a .NET assembly. Although reflection does not provide a method for this purpose, it is possible to get this information indirectly. |
 | Detecting a Parameter Array Reflection permits .NET developers to interrogate type metadata and obtain information relating to items such as classes, structures and their members. When reflecting methods it may be necessary to check if the final argument is a parameter array. |
 | Obtaining a List of Loaded Assemblies .NET applications are built by combining code from multiple assemblies, including custom executables and dynamic link libraries, and the assemblies provided by the .NET framework. Sometimes it can be useful to obtain a list of the loaded assemblies. |
 | Creating Custom Attributes The twenty-second and final part of the Reflection tutorial describes the creation and application of custom attributes. It also explains how those attributes can be configured to ensure that they are applied and inherited correctly. |
 | Reflecting Attributes The twenty-first part of the Reflection tutorial looks at the reflection of attributes. Attributes are used to decorate assemblies, types, members and other code to provide metadata about those items. With reflection, this metadata can be accessed. |
 | Invoking Methods Using Reflection The twentieth part of the Reflection tutorial describes the use of reflection to invoke methods of object instances. This allows late bound objects to be activated and used without needing to know the actual type or an interface that it implements. |
 | Accessing Field and Property Values with Reflection The nineteenth part of the Reflection tutorial expands upon the previous instalment that dealt with instantiating late-bound types. This article looks at the methods that allow reflected field and property values to be read and changed using reflection. |
 | Late Binding with Reflection The eighteenth part of the Reflection tutorial provides a change in direction to the previous articles, which concentrated on the extraction of information about code using reflection. This article is the first that considers late binding techniques. |
 | Reflecting Assembly Information The seventeenth part of the Reflection tutorial looks at how information about assemblies can be obtained using reflection. This is an important prerequisite for more advanced reflection techniques, such as dynamically loading assemblies at run time. |