protected LoggingAppDomainManager(IConfigurationWriter configuration)
        {
            string name = "sandbox" + GetNextId();

            this.sandbox = this.CreateLocalSandbox(name, configuration);

            this.sandboxManager = new SandboxManager();

            this.sandboxManager.Sandboxes.Add(this.sandbox);

            this.sandboxManager.SetupAllSandboxes();
        }
        protected virtual LocalSandbox <TRemoteSandbox> CreateLocalSandbox(string name,
                                                                           IConfigurationWriter configuration)
        {
            LocalSandbox <TRemoteSandbox> localSandbox =
                new LocalSandbox <TRemoteSandbox>(name, configuration);

            string currentAssemblyName = MethodBase.GetCurrentMethod().DeclaringType.Assembly.GetName().Name;

            localSandbox.DependentFiles.Add("CuttingEdge.Logging.dll");
            localSandbox.DependentFiles.Add(currentAssemblyName + ".dll");
            localSandbox.DependentFiles.Add("NSandbox.dll");

            return(localSandbox);
        }