C# Класс 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); ... } } }
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
BuildAspectInitCode ( Mono.Cecil.MethodDefinition method, CustomAttribute aspect, FieldDefinition &aspectInstanceField, FieldDefinition &methodInfoField ) : void
FinalizeBuilding ( ) : void
InitClassGenerator ( AssemblyDefinition assembly ) : System
IsInitClassCreated ( AssemblyDefinition assembly ) : bool

Приватные методы

Метод Описание
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

Описание методов

BuildAspectInitCode() публичный Метод

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
Результат void

FinalizeBuilding() публичный Метод

public FinalizeBuilding ( ) : void
Результат void

InitClassGenerator() публичный Метод

public InitClassGenerator ( AssemblyDefinition assembly ) : System
assembly Mono.Cecil.AssemblyDefinition
Результат System

IsInitClassCreated() публичный статический Метод

public static IsInitClassCreated ( AssemblyDefinition assembly ) : bool
assembly Mono.Cecil.AssemblyDefinition
Результат bool