Kampute.DocToolkit.Metadata Namespace
Provides metadata abstraction interfaces and adapters for unified access to reflection objects.
This namespace contains interfaces and implementations that provide a unified abstraction layer over .NET reflection objects. This abstraction enables consistent access to assembly, type, and member metadata regardless of whether the assembly was loaded via Common Language Runtime (CLR) or through MetadataLoadContext (MLC).The key benefits of this abstraction layer include:
- Cross-loading context compatibility for metadata access
- Consistent equality semantics based on metadata identity rather than object references
- Type-safe access to reflection metadata with compile-time checking
- Performance optimization through lazy loading and caching
- Extensibility for additional metadata sources in the future
Use MetadataProvider to create appropriate metadata abstractions from reflection objects.Classes
Structs
| TypedValue | Represents a value along with its associated type. |
Interfaces
| IAssembly | Provides a unified interface for accessing assembly metadata. |
| IClassType | Defines a contract for accessing class-specific metadata. |
| ICompositeType | Defines a contract for accessing metadata for types that are composite types. |
| IConstructor | Defines a contract for accessing constructor metadata. |
| ICustomAttribute | Defines a contract for accessing custom attribute metadata. |
| IDelegateType | Defines a contract for accessing delegate-specific metadata. |
| IEnumType | Defines a contract for accessing enum-specific metadata. |
| IEvent | Defines a contract for accessing event metadata. |
| IField | Defines a contract for accessing field metadata. |
| IGenericCapableType | Defines a contract for accessing metadata for types that can be generic. |
| IInterfaceCapableType | Defines a contract for accessing metadata for types that can extend or implement interfaces. |
| IInterfaceType | Defines a contract for accessing interface-specific metadata. |
| IMember | Defines a contract for accessing member metadata. |
| IMemberAdapterFactory | Defines a contract for creating metadata representations from reflection information of members. |
| IMemberAdapterRepository | Defines a contract for a repository that manages member metadata within an assembly. |
| IMetadataAdapter<T> | Defines a contract for metadata adapters that wrap reflection elements. |
| IMethod | Defines a contract for accessing method metadata. |
| IMethodBase | Defines a contract for accessing metadata common to methods and method operators. |
| IOperator | Defines a contract for accessing operator method metadata. |
| IParameter | Defines a contract for accessing parameter metadata. |
| IPrimitiveType | Defines a contract for accessing primitive type-specific metadata. |
| IProperty | Defines a contract for accessing property metadata. |
| IStructType | Defines a contract for accessing struct-specific metadata. |
| IType | Define a contract for accessing type-specific metadata. |
| ITypeDecorator | Defines a contract for types that decorate or wrap another type (arrays, pointers, by-ref, or nullable). |
| ITypeMember | Defines a contract for accessing type member metadata of a specific underlying type. |
| ITypeParameter | Defines a contract for accessing generic type parameter metadata. |
| IVirtualTypeMember | Defines a contract for accessing metadata of members that can be overridden or implemented. |
Enums