C# Class Shaspect.Builder.InitClassGenerator

Generates Shaspect.Implementation.AspectsCollection class, which initializes all aspects in the target assembly. The code is generated using IL and is equivalent of: namespace Shaspect.Implementation { [CompilerGenerated] [DebuggerNonUserCode] internal static class AspectsCollection { public static readonly SimpleAspect Aspect_0; public static readonly ComplexAspect Aspect_1; ... static AspectsCollection() { Aspect_0 = new SimpleAspect (param1, param2, param3); Aspect_0.Prop1 = val1; Aspect_0.Prop2 = val2; Aspect_1 = new ComplexAspect (param1, param2); ... } } }
Afficher le fichier Open project: mshmelev/Shaspect Class Usage Examples

Méthodes publiques

Méthode Description
BuildAspectInitCode ( Mono.Cecil.MethodDefinition method, CustomAttribute aspect, FieldDefinition &aspectInstanceField, FieldDefinition &methodInfoField ) : void
FinalizeBuilding ( ) : void
InitClassGenerator ( AssemblyDefinition assembly ) : System
IsInitClassCreated ( AssemblyDefinition assembly ) : bool

Private Methods

Méthode Description
AddInitArrayCode ( TypeReference type, Array value ) : Mono.Cecil.Cil.VariableDefinition
CreateAspectInstance ( CustomAttribute aspect ) : Mono.Cecil.Cil.VariableDefinition
CreateAspectsCollectionClass ( ) : void
InitAspectFields ( CustomAttribute aspect, Mono.Cecil.Cil.VariableDefinition aspectInstanceVar ) : void
InitAspectProperties ( CustomAttribute aspect, Mono.Cecil.Cil.VariableDefinition aspectInstanceVar ) : void

Method Details

BuildAspectInitCode() public méthode

public BuildAspectInitCode ( Mono.Cecil.MethodDefinition method, CustomAttribute aspect, FieldDefinition &aspectInstanceField, FieldDefinition &methodInfoField ) : void
method Mono.Cecil.MethodDefinition
aspect CustomAttribute
aspectInstanceField Mono.Cecil.FieldDefinition
methodInfoField Mono.Cecil.FieldDefinition
Résultat void

FinalizeBuilding() public méthode

public FinalizeBuilding ( ) : void
Résultat void

InitClassGenerator() public méthode

public InitClassGenerator ( AssemblyDefinition assembly ) : System
assembly Mono.Cecil.AssemblyDefinition
Résultat System

IsInitClassCreated() public static méthode

public static IsInitClassCreated ( AssemblyDefinition assembly ) : bool
assembly Mono.Cecil.AssemblyDefinition
Résultat bool