Пример #1
0
        private WeavingContext CreateWeavingContext(ModuleDefMD moduleDefinition)
        {
            var context = new WeavingContext
            {
                CompilerGeneratedAttributeType     = moduleDefinition.Import(typeof(CompilerGeneratedAttribute)),
                PriorityAttributeType              = TypeResolver.Resolve(moduleDefinition, typeof(PriorityAttribute)),
                AbstractTargetAttributeType        = TypeResolver.Resolve(moduleDefinition, typeof(AbstractTargetAttribute)),
                AdviceInterfaceType                = TypeResolver.Resolve(moduleDefinition, typeof(IAdvice)),
                WeavingAdviceInterfaceType         = TypeResolver.Resolve(moduleDefinition, typeof(IWeavingAdvice)),
                ExecutionPointAttributeDefaultCtor = moduleDefinition.Import(TypeResolver.Resolve(moduleDefinition, typeof(ExecutionPointAttribute)).FindDefaultConstructor()),
                ExcludePointcutAttributeType       = TypeResolver.Resolve(moduleDefinition, typeof(ExcludePointcutAttribute)),
                IncludePointcutAttributeType       = TypeResolver.Resolve(moduleDefinition, typeof(IncludePointcutAttribute)),
                ExcludeAdviceAttributeType         = TypeResolver.Resolve(moduleDefinition, typeof(ExcludeAdvicesAttribute)),
            };

            return(context);
        }