Design Patterns Used by Reflection Classes

The most commonly used methods in the System.Reflection namespace use a consistent pattern. The members of the Module, Type, and MemberInfo classes use the design patterns shown in the following table.

Member signature


MyInstance[] FindXxx(filter, filterCriteria)

Finds and returns a filtered list of types, or an empty array if no types matching the filter are implemented by the current type.

Example: Type.FindMembers

MyInstance GetXxx(<parameters>)

Returns the type that is uniquely specified by <parameters>. If no such type exists, the member returns a null reference (Nothing in Visual Basic). Note that <parameters> uniquely specifies an instance.

Example: Type.GetInterface

MyInstance[] GetXxxs()

Returns all the public types. If no public types exist, the member returns an empty array.

Example: Type.GetFields

MyInstance[] GetXxxs(<parameters>)

Returns all the types specified by <parameters>. If no such types exist, the member returns an empty array. Note that <parameters> does not necessarily specify a unique instance.

Another common design pattern is the use of delegates, which are used in reflection to enable filtering of the results set for methods that return arrays of objects.

Community Additions