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 |
Description |
---|---|
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.FindInterfaces |
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. They are typically used in reflection to enable filtering of the results set for methods that return arrays of objects.