void ProcessChildNode(TypeNode node, MethodReference changedInvokerMethod)
    {
        var childEventInvoker = FindEventInvokerMethod(node.TypeDefinition);

        if (childEventInvoker == null)
        {
            if (changedInvokerMethod != null)
            {
                if (node.TypeDefinition.BaseType.IsGenericInstance)
                {
                    var methodReference = MethodGenerifier.MakeGeneric(node.TypeDefinition.BaseType, changedInvokerMethod);
                    changedInvokerMethod = methodReference;
                }
            }
        }
        else
        {
            changedInvokerMethod = childEventInvoker;
        }

        node.IsChangedInvoker = changedInvokerMethod;

        foreach (var childNode in node.Nodes)
        {
            ProcessChildNode(childNode, changedInvokerMethod);
        }
    }
    void ProcessChildNode(TypeNode node, EventInvokerMethod eventInvoker)
    {
        var childEventInvoker = FindEventInvokerMethod(node.TypeDefinition);

        if (childEventInvoker == null)
        {
            if (node.TypeDefinition.BaseType.IsGenericInstance)
            {
                var methodReference = MethodGenerifier.MakeGeneric(node.TypeDefinition.BaseType, eventInvoker.MethodReference);
                eventInvoker = new EventInvokerMethod
                {
                    IsBeforeAfter   = eventInvoker.IsBeforeAfter,
                    MethodReference = methodReference,
                };
            }
        }
        else
        {
            eventInvoker = childEventInvoker;
        }

        node.EventInvoker = eventInvoker;

        foreach (var childNode in node.Nodes)
        {
            ProcessChildNode(childNode, eventInvoker);
        }
    }
 public IsChangedMethodFinder(MethodGenerifier methodGenerifier, Logger logger, MsCoreReferenceFinder msCoreReferenceFinder, TypeNodeBuilder typeNodeBuilder, ModuleReader moduleReader, TypeResolver typeResolver)
 {
     this.methodGenerifier      = methodGenerifier;
     this.logger                = logger;
     this.msCoreReferenceFinder = msCoreReferenceFinder;
     this.typeNodeBuilder       = typeNodeBuilder;
     this.moduleReader          = moduleReader;
     this.typeResolver          = typeResolver;
 }
 public IsChangedMethodFinder(MethodGenerifier methodGenerifier, Logger logger, MsCoreReferenceFinder msCoreReferenceFinder, TypeNodeBuilder typeNodeBuilder, ModuleReader moduleReader, TypeResolver typeResolver)
 {
     this.methodGenerifier = methodGenerifier;
     this.logger = logger;
     this.msCoreReferenceFinder = msCoreReferenceFinder;
     this.typeNodeBuilder = typeNodeBuilder;
     this.moduleReader = moduleReader;
     this.typeResolver = typeResolver;
 }
 public MethodFinder(MethodGenerifier methodGenerifier, MethodInjector methodInjector, TypeNodeBuilder typeNodeBuilder, ModuleReader moduleReader, Logger logger, TypeResolver typeResolver, EventInvokerNameResolver eventInvokerNameResolver)
 {
     this.methodGenerifier = methodGenerifier;
     this.methodInjector = methodInjector;
     this.typeNodeBuilder = typeNodeBuilder;
     this.moduleReader = moduleReader;
     this.logger = logger;
     this.typeResolver = typeResolver;
     this.eventInvokerNameResolver = eventInvokerNameResolver;
 }
 public MethodFinder(MethodGenerifier methodGenerifier, MethodInjector methodInjector, TypeNodeBuilder typeNodeBuilder, ModuleReader moduleReader, Logger logger, TypeResolver typeResolver, EventInvokerNameResolver eventInvokerNameResolver)
 {
     this.methodGenerifier         = methodGenerifier;
     this.methodInjector           = methodInjector;
     this.typeNodeBuilder          = typeNodeBuilder;
     this.moduleReader             = moduleReader;
     this.logger                   = logger;
     this.typeResolver             = typeResolver;
     this.eventInvokerNameResolver = eventInvokerNameResolver;
 }
Example #7
0
 public OnChangedWalker(MethodGenerifier methodGenerifier, TypeNodeBuilder typeNodeBuilder)
 {
     this.methodGenerifier = methodGenerifier;
     this.typeNodeBuilder  = typeNodeBuilder;
 }
 public OnChangedWalker(MethodGenerifier methodGenerifier,  TypeNodeBuilder typeNodeBuilder)
 {
     this.methodGenerifier = methodGenerifier;
     this.typeNodeBuilder = typeNodeBuilder;
 }