コード例 #1
0
        public void Execute()
        {
            try
            {
                InitializeEnvironment();

                // Read config
                var configuration = new Configuration(Config);

                // Set up the basics
                var msCoreReferenceFinder = new MsCoreReferenceFinder(this, ModuleDefinition.AssemblyResolver);
                msCoreReferenceFinder.Execute();

                // Create method that imports the types
                var loadTypesWeaver = new LoadTypesWeaver(ModuleDefinition, msCoreReferenceFinder, configuration, this);
                var loadTypesMethod = loadTypesWeaver.Execute();

                // Call method on assembly init
                var moduleLoaderImporter = new ModuleLoaderImporter();
                moduleLoaderImporter.ImportModuleLoader(ModuleDefinition, loadTypesMethod, msCoreReferenceFinder);
            }
            catch (Exception ex)
            {
                LogError(ex.Message);

#if DEBUG
                Debugger.Launch();
#endif
            }
        }
コード例 #2
0
        public override void Execute()
        {
            try
            {
#if DEBUG
                if (!Debugger.IsAttached)
                {
                    Debugger.Launch();

                    //FodyEnvironment.LogDebug = CreateLoggingCallback(LogDebug);
                    //FodyEnvironment.LogInfo = CreateLoggingCallback(LogInfo);
                    //FodyEnvironment.LogWarning = CreateLoggingCallback(LogWarning);
                    //FodyEnvironment.LogError = CreateLoggingCallback(LogError);
                }
#endif

                // First of all, set the assembly resolver
                if (AssemblyResolver == null)
                {
                    AssemblyResolver = ModuleDefinition.AssemblyResolver;
                }

                // Clear cache because static members will be re-used over multiple builds over multiple systems
                CacheHelper.ClearAllCaches();

                InitializeEnvironment();

                // Read config
                var configuration = new Configuration(Config);

                LogInfo($"LoadAssembliesOnStartup.Fody v{GetType().Assembly.GetName().Version}");

                // Set up the basics
                var msCoreReferenceFinder = new MsCoreReferenceFinder(this, ModuleDefinition.AssemblyResolver);
                msCoreReferenceFinder.Execute();

                // Create method that imports the types
                var loadTypesWeaver = new LoadTypesWeaver(ModuleDefinition, msCoreReferenceFinder, configuration, this);
                var loadTypesMethod = loadTypesWeaver.Execute();

                // Call method on assembly init
                var moduleLoaderImporter = new ModuleLoaderImporter();
                moduleLoaderImporter.ImportModuleLoader(ModuleDefinition, loadTypesMethod, msCoreReferenceFinder);
            }
            catch (Exception ex)
            {
                LogError(ex.Message);

#if DEBUG
                Debugger.Launch();
#endif
            }
        }
コード例 #3
0
ファイル: ModuleWeaver.cs プロジェクト: Fody/ModuleInit
 public void Execute()
 {
     var initializeMethodFinder = new InitializeMethodFinder
                                  {
                                      ModuleWeaver = this
                                  };
     initializeMethodFinder.Execute();
     var importer = new ModuleLoaderImporter
                    {
                        InitializeMethodFinder = initializeMethodFinder,
                        ModuleWeaver = this,
                        TypeSystem = ModuleDefinition.TypeSystem
                    };
     importer.Execute();
 }
コード例 #4
0
    public override void Execute()
    {
        var finder = new InitializeMethodFinder
        {
            ModuleWeaver = this
        };

        finder.Execute();
        var importer = new ModuleLoaderImporter
        {
            InitializeMethodFinder = finder,
            ModuleWeaver           = this,
            TypeSystem             = ModuleDefinition.TypeSystem
        };

        importer.Execute();
    }