/// <summary> /// Initializes a new instance of the <see cref="AssemblyLoader" /> class. /// </summary> /// <param name="settings">The settings.</param> /// <param name="factories">The factories used for loading assemblies.</param> public AssemblyLoader(MachineSettings settings, params AssemblyProviderFactory[] factories) { _manager = new AssembliesManager(this, settings); _assemblyFactories = factories.ToArray(); _nullCallHandler = new DirectGenerator(nullCallHandler); AppDomain = new AppDomainServices(_manager); //register cleaning of overriding generators Settings.BeforeInterpretation += () => _overridingGenerators.Clear(); }
/// <summary> /// Register injected generator for given instance. All incoming /// calls will be replaced with instructions of given generator. /// </summary> /// <param name="registeredInstance">Instance which generator is injected.</param> /// <param name="generator">Injected generator.</param> internal void RegisterInjectedGenerator(Instance registeredInstance, DirectGenerator generator) { _overridingGenerators[registeredInstance] = generator; }