public static GenericBackendBuilder AddGenericBackend(this IServiceCollection services) { #if !NETFX services.AddRouting(); #endif services.AddKullDatabaseMetadata(); services.TryAddSingleton <Common.NamingMappingHandler>(); services.TryAddSingleton <SwaggerGeneration.CodeConvention>(); services.TryAddSingleton <Config.ConfigProvider>(); services.TryAddTransient <ParameterProvider>(); services.TryAddSingleton <GenericSP.MiddlewareRegistration>(); services.TryAddTransient <Execution.CommandPreparation>(); #if NETFX || NETSTD services.AddTransient <IGenericSPSerializer, GenericSPJsonSerializerJsonNet>(); #else services.AddTransient <IGenericSPSerializer, GenericSPJsonSerializerSTJ>(); #endif services.AddTransient <SerializerResolver, SerializerResolver>(); services.AddTransient <GenericSP.IGenericSPMiddleware, GenericSP.GenericSPMiddleware>(); services.AddTransient <Error.IResponseExceptionHandler, Error.SqlServerExceptionHandler>(); GenericSP.SPMiddlewareOptions?options = null; SwaggerFromSPOptions? swaggerFromSPOptions = null; var opts = options ?? new GenericSP.SPMiddlewareOptions(); services.TryAddSingleton(opts); services.TryAddSingleton(swaggerFromSPOptions ?? new SwaggerGeneration.SwaggerFromSPOptions()); #if NETFX services.AddTransient <Swashbuckle.Swagger.IDocumentFilter, DatabaseOperations>(); #endif return(new GenericBackendBuilder(services)); }
/// <summary> /// Integrates Unity when the application starts. /// </summary> public static void Start() { Container = Core.Ioc.Bootstrapper.Initialise(); FilterProviders.Providers.Remove(FilterProviders.Providers.OfType <FilterAttributeFilterProvider>().First()); FilterProviders.Providers.Add(new UnityFilterAttributeFilterProvider(Container)); DependencyResolver.SetResolver(new UnityDependencyResolver(Container)); // TODO: Uncomment if you want to use PerRequestLifetimeManager // Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility.RegisterModule(typeof(UnityPerRequestHttpModule)); }
static DIHelper() { container = new Unity.UnityContainer(); }