internal AppDomainContext( IAssemblyLoaderFactory assemblyLoaderFactory, ISerializer serializer, Logger logger, params ISerializableLambdaFilter[] lambdaFilters) { _assemblyLoaderFactory = assemblyLoaderFactory; _serializer = serializer; _lambdaFilters = lambdaFilters.ToList().AsReadOnly(); _logger = logger; var domainSetup = new AppDomainSetup { ApplicationBase = null, PrivateBinPathProbe = "true", LoaderOptimization = LoaderOptimization.MultiDomainHost }; _appDomain = AppDomain.CreateDomain("Smocks-" + Guid.NewGuid(), null, domainSetup); object[] constructorArguments = { }; var resolver = (AssemblyResolver)_appDomain.CreateInstanceFromAndUnwrap( typeof(AssemblyResolver).Assembly.Location, typeof(AssemblyResolver).FullName, true, BindingFlags.Default, null, constructorArguments, null, null); resolver.AssemblyLoaderFactory = assemblyLoaderFactory; }
/// <summary> /// Initializes a new instance of the <see cref="AssemblyResolver" /> class. /// </summary> /// <param name="loadedAssemblyFinder">The loaded assembly finder.</param> /// <param name="loaderFactory">The factory.</param> internal AssemblyResolver(ILoadedAssemblyFinder loadedAssemblyFinder, IAssemblyLoaderFactory loaderFactory) { _loadedAssemblyFinder = loadedAssemblyFinder; AssemblyLoaderFactory = loaderFactory; }