public override void VisitConstructorCollection(ConstructorCollection ctors)
 {
     foreach (MethodDefinition ctor in ctors)
     {
         VisitConstructor(ctor);
     }
 }
		public override void VisitConstructorCollection (ConstructorCollection ctors)
		{
			VisitCollection (ctors);
		}
예제 #3
0
 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)
        {

        }
예제 #6
0
 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);
                }
            }
        }
예제 #10
0
 private void Visit(ConstructorCollection constructorCollection)
 {
   foreach (MethodDefinition method in constructorCollection)
   {
     Visit(method);
   }
 }