C# Class Stiletto.Fody.Generators.LoaderGenerator

Inheritance: Generator
Afficher le fichier Open project: benjamin-bader/stiletto

Méthodes publiques

Méthode Description
Generate ( IErrorReporter errorReporter ) : Mono.Cecil.TypeDefinition

Generates an ILoader implementation that provides the given inject bindings, lazy bindings, provider bindings, and modules, at runtime.

The idea here is that we have a key and constructor methodref for all generated types; we can just wrap each methodref in a so-called factory function and maintain dictionaries of keys to factory Funcs; at runtime, either the proper Func is looked up and returned or the lookup fails null is returned, passing the job off to other loaders.

GetKeyedCtor ( ) : KeyedCtor
LoaderGenerator ( Mono.Cecil.ModuleDefinition moduleDefinition, References references, IEnumerable injectBindingCtors, IEnumerable lazyBindingCtors, IEnumerable providerBindingCtors, MethodReference>.IEnumerable runtimeModuleCtors ) : System
Validate ( IErrorReporter errorReporter ) : void

Private Methods

Méthode Description
AddFactoryToDict ( Mono.Cecil.Cil.ILProcessor il, string key, MethodReference factory, FieldReference field, MethodReference fnCtor, MethodReference addFn ) : void
EmitCtor ( ) : void
EmitGetIProviderInjectBinding ( ) : void
EmitGetInjectBinding ( ) : void
EmitGetLazyInjectBinding ( ) : void
EmitGetRuntimeModule ( ) : void
EmitInjectFactory ( MethodReference ctor ) : Mono.Cecil.MethodDefinition
EmitLazyFactory ( MethodReference ctor ) : Mono.Cecil.MethodDefinition
EmitModuleFactory ( MethodReference ctor ) : Mono.Cecil.MethodDefinition
EmitProviderFactory ( MethodReference ctor ) : Mono.Cecil.MethodDefinition
GetFnMethods ( TypeReference tFn ) : Tuple

Method Details

Generate() public méthode

Generates an ILoader implementation that provides the given inject bindings, lazy bindings, provider bindings, and modules, at runtime.
The idea here is that we have a key and constructor methodref for all generated types; we can just wrap each methodref in a so-called factory function and maintain dictionaries of keys to factory Funcs; at runtime, either the proper Func is looked up and returned or the lookup fails null is returned, passing the job off to other loaders.
public Generate ( IErrorReporter errorReporter ) : Mono.Cecil.TypeDefinition
errorReporter IErrorReporter
Résultat Mono.Cecil.TypeDefinition

GetKeyedCtor() public méthode

public GetKeyedCtor ( ) : KeyedCtor
Résultat KeyedCtor

LoaderGenerator() public méthode

public LoaderGenerator ( Mono.Cecil.ModuleDefinition moduleDefinition, References references, IEnumerable injectBindingCtors, IEnumerable lazyBindingCtors, IEnumerable providerBindingCtors, MethodReference>.IEnumerable runtimeModuleCtors ) : System
moduleDefinition Mono.Cecil.ModuleDefinition
references References
injectBindingCtors IEnumerable
lazyBindingCtors IEnumerable
providerBindingCtors IEnumerable
runtimeModuleCtors MethodReference>.IEnumerable
Résultat System

Validate() public méthode

public Validate ( IErrorReporter errorReporter ) : void
errorReporter IErrorReporter
Résultat void