The Gallio.Common.Reflection namespace defines an abstract reflection Api similar to System.Reflection but intended to enable reflection of .Net code assets that are not loaded as executable assemblies. The reflection Api provides several capabilities not present in System.Reflection including the ability to obtain source file and line number information as well as Xml documentation comments. This namespace includes a wrapper for standard .Net reflection and for a file-based reflection policy based on Mono.Cecil.

Classes

  ClassDescription
AssemblyBinding
An assembly binding specifies the name and location of an assembly as well as some properties to control how the .Net assembly loader resolves particular assembly versions.
AssemblyBinding..::.BindingRedirect
Specifies an old version range for an assembly binding redirect.
AssemblyMetadata
Provides basic information about an Assembly derived from its metadata.
AssemblySignature
Describes characteristics used to match an assembly such as an assembly name and version range.
AssemblyUtils
Provides helpers for working with assemblies.
AttributeUtils
Manipulates attributes described by their metadata.
CodeElementSorter
Sorts code elements in various ways.
DeclaringTypeComparer<(Of <(T>)>)
Sorts an members that all belong to the same type such that the members declared by supertypes appear before those declared by subtypes.
ProxyUtils
Utilities for generating dynamic proxies and adapters using code generation techniques.
ReflectionOnlyAssemblyLoader
This assembly loader loads assemblies externally for reflection only.
ReflectionResolveException
The type of exception thrown when a reflection info object or reference cannot be resolved.
ReflectionUtils
Provides functions for working with reflection.
Reflector
Wraps reflection types using the reflection adapter interfaces. Also resolves code references.
TypeName
Describes the name of a type and allows partial type names to be compared with one another.

Structures

  StructureDescription
CodeLocation
Specifies the location of a code element as a position within a file.
CodeReference
A code reference is a pointer into the structure of a .Net program for use in describing the location of a certain code construct to the user. It is typically used to identify the point of definition of a test component.
ConstantValue
Specifies a typed constant value.

Interfaces

  InterfaceDescription
IAssemblyInfo
A Assembly reflection wrapper.
IAttributeInfo
Provides information about the contents of a custom attribute.
ICodeElementInfo
Represents a structural element of some code base.
IConstructorInfo
A ConstructorInfo reflection wrapper.
IEventInfo
A EventInfo reflection wrapper.
IFieldInfo
A FieldInfo reflection wrapper.
IFunctionInfo
A MethodBase reflection wrapper.
IGenericParameterInfo
A Type reflection wrapper for generic parameters. The parameter is presented as if it were a slot the accepted a value of type Type.
IMemberInfo
A MemberInfo reflection wrapper.
IMethodInfo
A MethodInfo reflection wrapper.
IMirror
A mirror describes a code element or attribute using a particular reflection policy.
INamespaceInfo
A namespace reflection wrapper identified by its name.
IParameterInfo
A ParameterInfo reflection wrapper.
IPropertyInfo
A PropertyInfo reflection wrapper.
IReflectionPolicy
A reflection policy provides access to top-level reflection resources such as assemblies.
ISlotInfo
A slot represents a field, property or parameter. It is used to simplify the handling of data binding since all three of these types are similar in that they can hold values of some type.
ITypeInfo
A Type reflection wrapper.

Enumerations

  EnumerationDescription
AssemblyMetadataFields
Specifies the optional fields of the assembly metadata that are to be populated.
CodeElementKind
Describes the kind of code element represented by a ICodeElementInfo.
CodeReferenceKind
Describes the kind of code element specified by a CodeReference.
ConstantValue..::.UnresolvedEnum
A placeholder enum type used to express enum values that cannot be resolved because their actual enum type cannot be resolved.