/// <summary> /// This is the entry point of the service host process. /// </summary> private static void Main() { try { IContainerBuilder containerBuilder = new DefaultContainerBuilder(); containerBuilder.Build(); ServiceRuntime.RegisterServiceAsync("DiscoveryServiceType", ServiceFactory).GetAwaiter().GetResult(); ServiceEventSource.Current.ServiceTypeRegistered(Process.GetCurrentProcess().Id, typeof(DiscoveryService).Name); // Prevents this host process from terminating so services keeps running. Thread.Sleep(Timeout.Infinite); } catch (Exception e) { ServiceEventSource.Current.ServiceHostInitializationFailed(e.ToString()); throw; } }
/// <summary> /// Configures the dependency resolver for Cofoundry and /// registers all the services, repositories and modules setup for auto-registration. /// </summary> public static IMvcBuilder AddCofoundry( this IMvcBuilder mvcBuilder, IConfiguration configuration, Action <AddCofoundryStartupConfiguration> configBuilder = null ) { var cofoundryConfig = new AddCofoundryStartupConfiguration(); configBuilder?.Invoke(cofoundryConfig); AddAdditionalTypes(mvcBuilder); DiscoverAdditionalApplicationParts(mvcBuilder, cofoundryConfig); var typesProvider = new DiscoveredTypesProvider(mvcBuilder.PartManager); var builder = new DefaultContainerBuilder(mvcBuilder.Services, typesProvider, configuration); builder.Build(); RunAdditionalConfiguration(mvcBuilder); return(mvcBuilder); }