Design Patterns Used by Reflection Classes
The most commonly used methods in the System.Reflection classes 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.