Class TypeLoader
Provides methods for loading specified types from an assembly.
Syntax
public static class TypeLoader
Fields
ReaderParameters
Default reader parameters used by TypeLoader
Declaration
public static readonly ReaderParameters ReaderParameters
Field Value
| Type | Description |
|---|---|
ReaderParameters |
Resolver
Default assembly resolved used by the TypeLoader
Declaration
public static readonly DefaultAssemblyResolver Resolver
Field Value
| Type | Description |
|---|---|
DefaultAssemblyResolver |
Methods
Looks up assemblies in the given directory and locates all types that can be loaded and collects their metadata.
Declaration
public static Dictionary<string, List<T>> FindPluginTypes<T>(string directory, Func<TypeDefinition, T> typeSelector, Func<AssemblyDefinition, bool> assemblyFilter = null, string cacheName = null)
where T : ICacheable, new()
Parameters
| Type | Name | Description |
|---|---|---|
System.String |
directory |
The directory to search for assemblies. |
System.Func<TypeDefinition, T> |
typeSelector |
A function to check if a type should be selected and to build the type metadata. |
System.Func<AssemblyDefinition, System.Boolean> |
assemblyFilter |
A filter function to quickly determine if the assembly can be loaded. |
System.String |
cacheName |
The name of the cache to get cached types from. |
Returns
| Type | Description |
|---|---|
System.Collections.Generic.Dictionary<System.String, System.Collections.Generic.List<T>> |
A dictionary of all assemblies in the directory and the list of type metadatas of types that match the selector. |
Type Parameters
| Name | Description |
|---|---|
T |
The specific base type to search for. |
Loads an index of type metadatas from a cache.
Declaration
public static Dictionary<string, CachedAssembly<T>> LoadAssemblyCache<T>(string cacheName)
where T : ICacheable, new()
Parameters
| Type | Name | Description |
|---|---|---|
System.String |
cacheName |
Name of the cache |
Returns
| Type | Description |
|---|---|
System.Collections.Generic.Dictionary<System.String, CachedAssembly<T>> |
Cached type metadatas indexed by the path of the assembly that defines the type. If no cache is defined, return null. |
Type Parameters
| Name | Description |
|---|---|
T |
Cacheable item |
Saves indexed type metadata into a cache.
Declaration
public static void SaveAssemblyCache<T>(string cacheName, Dictionary<string, List<T>> entries)
where T : ICacheable
Parameters
| Type | Name | Description |
|---|---|---|
System.String |
cacheName |
Name of the cache |
System.Collections.Generic.Dictionary<System.String, System.Collections.Generic.List<T>> |
entries |
List of plugin metadatas indexed by the path to the assembly that contains the types |
Type Parameters
| Name | Description |
|---|---|
T |
Cacheable item |
Converts TypeLoadException to a readable string.
Declaration
public static string TypeLoadExceptionToString(ReflectionTypeLoadException ex)
Parameters
| Type | Name | Description |
|---|---|---|
System.Reflection.ReflectionTypeLoadException |
ex |
TypeLoadException |
Returns
| Type | Description |
|---|---|
System.String |
Readable representation of the exception |
Events
AssemblyResolve
Event fired when TypeLoader fails to resolve a type during type loading.
Declaration
public static event AssemblyResolveEventHandler AssemblyResolve
Event Type
| Type | Description |
|---|---|
AssemblyResolveEventHandler |