VolatileFieldFixer.Execute C# (CSharp) Method

Execute() public method

public Execute ( List allClasses ) : void
allClasses List
return void
    public void Execute(List<TypeDefinition> allClasses)
    {
        foreach (var typeDefinition in allClasses)
        {
            ProcessType(typeDefinition);
        }
    }

Usage 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);
    }
All Usage Examples Of VolatileFieldFixer::Execute