Esempio n. 1
0
            public TempAppDomain()
            {
                var settings = new AppDomainSetup
                {
                    ApplicationBase = AppDomain.CurrentDomain.BaseDirectory,
                };

                _appDomain = AppDomain.CreateDomain(Guid.NewGuid().ToString(), securityInfo: null, settings);

                var handle = Activator.CreateInstance
                             (
                    _appDomain,
                    typeof(AssemblyLoaderProxy).Assembly.FullName,
                    // ReSharper disable once AssignNullToNotNullAttribute
                    typeof(AssemblyLoaderProxy).FullName,
                    ignoreCase: false,
                    BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance,
                    binder: null,
                    args: null,
                    CultureInfo.CurrentCulture,
                    activationAttributes: new object[0]
                             );

                _loaderProxy = (AssemblyLoaderProxy)handle.Unwrap();
            }
        public void Create()
        {
            string pathToDll   = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            var    domainSetup = new AppDomainSetup
            {
                PrivateBinPath    = pathToDll,
                ConfigurationFile = "",
                ApplicationBase   = System.AppDomain.CurrentDomain.BaseDirectory
            };

            var evidence = System.AppDomain.CurrentDomain.Evidence;

            _domain = System.AppDomain.CreateDomain(_name, evidence, domainSetup);

            _assemblyLoaderProxy = LoadProxy <AssemblyLoaderProxy>();
            _assemblyLoaderProxy.AddDirectory(pathToDll);
            _runnerProxy = LoadProxy <TestRunnerProxy>();
        }