public void Start() { var starterType = typeof(EnvironmentStarter); var domain = CreateAppDomainFor(dllPath); var starter = (EnvironmentStarter)domain.CreateInstanceAndUnwrap( starterType.Assembly.GetName(false).Name, starterType.FullName); var outputWriter = new KeepAliveTextWriter(output); var errorWriter = new KeepAliveTextWriter(error); var assemblyName = starter.Setup(dllPath, outputWriter, errorWriter); openWriters.Add(outputWriter); openWriters.Add(errorWriter); //domain.UnhandledException += Domain_UnhandledException; var environments = types.Select(typeName => { var environment = starter.ForType(assemblyName, typeName); if (environment != null) { environment.Start(); } return(environment); }).ToList(); this.appDomain = domain; }
public void WriteLine() { var output = new StringWriter(); var writer = new KeepAliveTextWriter(output); writer.WriteLine("Hello"); Assert.That(output.ToString(), Is.EqualTo("Hello" + Environment.NewLine)); }
private Host CreateHost(string physicalPath, string virtualPath) { Host host = new Host(); host.Configure(this, Server.Port, virtualPath, physicalPath, Server.RequireAuthentication, Server.DisableDirectoryListing); var output = new KeepAliveTextWriter(OutputWriter ?? Console.Out); var applicationManager = ApplicationManager.GetApplicationManager(); host = CreateWorkerAppDomainWithHost(host); host.SetConsoleOut(output); if (HostCreated != null) { HostCreated.Invoke(this, new HostCreatedEventArgs(virtualPath, physicalPath)); } Console.WriteLine("Host created {0}", virtualPath); return(host); }
public void SetConsoleOut(TextWriter writer) { this.outputWriter = new KeepAliveTextWriter(writer); Console.SetOut(outputWriter); }