Execute() public method

public Execute ( List classes ) : void
classes List
return void
Example #1
0
    public void Execute()
    {
        var freezableTypeFinder = new FreezableTypeFinder(ModuleDefinition, AssemblyResolver);

        freezableTypeFinder.Execute();

        var exceptionFinder = new ExceptionFinder(ModuleDefinition, AssemblyResolver);

        exceptionFinder.Execute();

        var volatileFinder = new VolatileTypeFinder(ModuleDefinition, AssemblyResolver);

        volatileFinder.Execute();

        var volatileFieldFixer    = new VolatileFieldFixer(volatileFinder);
        var fieldInjector         = new FieldInjector(volatileFinder, ModuleDefinition.TypeSystem, volatileFieldFixer);
        var checkIsFrozenBuilder  = new CheckIsFrozenBuilder(ModuleDefinition.TypeSystem, exceptionFinder);
        var freezeCheckerInjector = new FreezeCheckerInjector(ModuleDefinition, fieldInjector, checkIsFrozenBuilder);

        var typeResolver = new TypeResolver();
        var implementsInterfaceFinder = new ImplementsInterfaceFinder(typeResolver);

        var classes = ModuleDefinition.GetTypes()
                      .Where(x => x.IsClass)
                      .ToList();
        var assemblyProcessor = new AssemblyProcessor(freezeCheckerInjector, implementsInterfaceFinder, LogInfo);

        assemblyProcessor.Execute(classes);

        volatileFieldFixer.Execute(classes);
    }
Example #2
0
    public void Execute()
    {
        var freezableTypeFinder = new FreezableTypeFinder(ModuleDefinition, AssemblyResolver);
        freezableTypeFinder.Execute();

        var exceptionFinder = new ExceptionFinder(ModuleDefinition, AssemblyResolver);
        exceptionFinder.Execute();

        var volatileFinder = new VolatileTypeFinder(ModuleDefinition, AssemblyResolver);
        volatileFinder.Execute();

        var volatileFieldFixer = new VolatileFieldFixer(volatileFinder);
        var fieldInjector = new FieldInjector(volatileFinder, ModuleDefinition.TypeSystem, volatileFieldFixer);
        var checkIsFrozenBuilder = new CheckIsFrozenBuilder(ModuleDefinition.TypeSystem, exceptionFinder);
        var freezeCheckerInjector = new FreezeCheckerInjector(ModuleDefinition, fieldInjector, checkIsFrozenBuilder);

        var typeResolver = new TypeResolver();
        var implementsInterfaceFinder = new ImplementsInterfaceFinder(typeResolver);

        var classes = ModuleDefinition.GetTypes()
            .Where(x => x.IsClass)
            .ToList();
        var assemblyProcessor = new AssemblyProcessor(freezeCheckerInjector, implementsInterfaceFinder, LogInfo);
        assemblyProcessor.Execute(classes);

        volatileFieldFixer.Execute(classes);
    }
Example #3
0
        private void Run()
        {
            if (args.Length == 0)
            {
                ShowNoArgumentsErrorAndExit();
            }

            foreach (var arg in args)
            {
                ProcessArgument(arg);
            }

            var processor = new AssemblyProcessor(configuration, new ConsoleMessageWriter());
            var result    = processor.Execute();

            ExitAccordingToResult(result);
        }