void ProcessGet(PropertyDefinition property) { //Exclude indexers if (property.HasParameters) { return; } var getMethod = property.GetMethod; //Exclude when no get if (getMethod == null) { return; } //Exclude when abstract if (getMethod.IsAbstract) { return; } var recursiveIlFinder = new RecursiveIlFinder(property.DeclaringType); recursiveIlFinder.Execute(getMethod); foreach (var instruction in recursiveIlFinder.Instructions) { ProcessInstructionForGet(property, instruction); } }
public void Run() { var typeDefinition = DefinitionFinder.FindType<InnerClass>(); var recursiveIlFinder = new RecursiveIlFinder(typeDefinition); var methodDefinition = typeDefinition.Methods.First(x => x.Name == "Method1"); recursiveIlFinder.Execute(methodDefinition); #if(DEBUG) Assert.AreEqual(25, recursiveIlFinder.Instructions.Count); #else Assert.AreEqual(15, recursiveIlFinder.Instructions.Count); #endif }
public void Run() { var typeDefinition = DefinitionFinder.FindType <InnerClass>(); var recursiveIlFinder = new RecursiveIlFinder(typeDefinition); var methodDefinition = typeDefinition.Methods.First(x => x.Name == "Method1"); recursiveIlFinder.Execute(methodDefinition); #if (DEBUG) Assert.Equal(25, recursiveIlFinder.Instructions.Count); #else Assert.Equal(15, recursiveIlFinder.Instructions.Count); #endif }
void ProcessGet(PropertyDefinition property) { var getMethod = property.GetMethod; //Exclude when no get if (getMethod == null) { return; } //Exclude when abstract if (getMethod.IsAbstract) { return; } var recursiveIlFinder = new RecursiveIlFinder(property.DeclaringType); recursiveIlFinder.Execute(getMethod); foreach (var instruction in recursiveIlFinder.Instructions) { ProcessInstructionForGet(property, instruction); } }