public void Setup(string baseAddress, MethodInfo config, Type traceWriterType, string defaultRouteTemplate) { var configuration = new HttpSelfHostConfiguration(baseAddress); // default map // TODO: centralize default route mapping in all host strategies configuration.Routes.MapHttpRoute( "api default", defaultRouteTemplate, new { action = RouteParameter.Optional }); // TODO: Add a sample educating user how to communicate to Tracer under partial trust. if (traceWriterType != null) { /// TODO: improvement /// There are other ways of initializing a trace writer, for example you can pass in /// a factory method or an already-created instance. configuration.Services.Replace(typeof(ITraceWriter), Activator.CreateInstance(traceWriterType)); } _server = new HttpSelfHostServer(configuration); configuration.SetHttpServer(_server); if (config != null) { config.Invoke(null, new object[] { configuration }); } _server.OpenAsync().Wait(); }