/// <summary> /// Called when the weaver is executed. /// </summary> public override void Execute() { GlobalModule = ModuleDefinition; Log = LogInfo; Context = new WeaveContext(ModuleDefinition); Context.Finder = new ReferenceFinder(ModuleDefinition); Context.Candidates = new WeaveCandidates(ModuleDefinition, Context.Finder); GlobalContext = Context; InitializeStaticContainer(); WeaveImplementations(); WeaveMethodInterceptors(); WeavePropertyInterceptors(); WeaveFieldInterceptors(); WeaveConstructorInterceptors(); }
/// <summary> /// Initializes a new instance of the <see cref="TypeEmitter" /> class. /// </summary> /// <param name="module">The module.</param> /// <param name="type">The type.</param> /// <param name="context">The context.</param> public TypeEmitter(ModuleDefinition module, TypeReference type, WeaveContext context) { Context = context; Module = module; Target = type as TypeDefinition ?? type.Resolve(); }