public override void VisitConstructorCollection(ConstructorCollection ctors) { foreach (MethodDefinition ctor in ctors) { VisitConstructor(ctor); } }
public override void VisitConstructorCollection (ConstructorCollection ctors) { VisitCollection (ctors); }
public virtual void VisitConstructorCollection(ConstructorCollection ctors) { }
public virtual void VisitConstructorCollection(ConstructorCollection ctors) { foreach (MethodDefinition ctor in ctors) { VisitConstructor(ctor); } }
public virtual void VisitConstructorCollection(ConstructorCollection ctors) { }
public override void VisitConstructorCollection(ConstructorCollection ctors) { for (int i = 0; i < ctors.Count; i++) VisitConstructor(ctors[i]); }
public void VisitConstructorCollection(ConstructorCollection ctors) { foreach (MethodDefinition constructor in ctors) { AppendNode(constructor.DeclaringType, constructor, false); } }
private MethodDefinition GetStartupApplicationMethod(IEnumerable<MethodDefinition> methods, ConstructorCollection constructors) { MethodDefinition constructorWithStartupDefinition = constructors.Cast<MethodDefinition>().First(constructor => HasStartupEvent(constructor)); List<Instruction> instructions = constructorWithStartupDefinition.Body.Instructions.Cast<Instruction>().ToList(); string operandForLoadingApplicationStartupFunction = instructions[instructions.IndexOf(GetStartupEventHandlerInstruction(instructions)) - 1].Operand.ToString (); // Console.WriteLine(operandForLoadingApplicationStartupFunction); string applicationStartupMethod = Regex.Match(operandForLoadingApplicationStartupFunction, "::(.*)\\(").Groups[1].Captures[0].Value; Console.WriteLine("application startup method is : " + applicationStartupMethod); return methods.First(definition => definition.Name == applicationStartupMethod); }
/// <summary> /// Reads constructors and add them to method list for type /// </summary> /// <param name="type"></param> /// <param name="constructors"></param> private void ReadConstructors(Type type, ConstructorCollection constructors) { foreach (MethodDefinition constructor in constructors) { var method = new Method { Name = FormatMethodName(constructor), Type = type }; type.Methods.Add(method); } foreach (MethodDefinition constructor in constructors) { var method = (from m in type.Methods where m.Name == FormatMethodName(constructor) select m).SingleOrDefault(); if (constructor.Body != null) { ReadInstructions(method, constructor, constructor.Body.Instructions); } } }
private void Visit(ConstructorCollection constructorCollection) { foreach (MethodDefinition method in constructorCollection) { Visit(method); } }