public static void SetupDependencies(IStashboxContainer container, ILogger logger) { container.RegisterInstance(logger); container.Register <ILoggerFactory, SerilogLoggerFactory>(); container.Register(typeof(IValidationTextFormatter <>), typeof(SingleLineFormatter)); container.RegisterSingleton <ConfigProvider>(); container.RegisterSingleton <MigoProxyService>(); container.Register <MainWindowViewModel>(); }
private static void RegisterComponents(IStashboxContainer container) { container.Register <ModelValidatorProvider, StashboxDataAnnotationsModelValidatorProvider>(); container.Register <ModelValidatorProvider, StashboxModelValidatorProvider>(context => context.WithInjectionParameters(new KeyValuePair <string, object>("modelValidatorProviders", ModelValidatorProviders.Providers.Where(provider => !(provider is DataAnnotationsModelValidatorProvider)).ToArray()))); container.Register <IFilterProvider, StashboxFilterAttributeFilterProvider>(); container.Register <IFilterProvider, StashboxFilterProvider>(context => context.WithInjectionParameters(new KeyValuePair <string, object>("filterProviders", FilterProviders.Providers.Where(provider => !(provider is FilterAttributeFilterProvider)).ToArray()))); RegisterControllers(container); }
/// <summary> /// Sets a custom <see cref="ModelValidatorProvider"/> which enables property injection in model validators. /// </summary> /// <exception cref="ArgumentNullException"> /// If <paramref name="container"/> or <paramref name="config"/> is <c>null</c>. /// </exception> public static IStashboxContainer AddWebApiModelValidatorInjection(this IStashboxContainer container, HttpConfiguration config) { Shield.EnsureNotNull(container, nameof(container)); Shield.EnsureNotNull(config, nameof(config)); container.Register <ModelValidatorProvider, StashboxDataAnnotationsModelValidatorProvider>(); container.Register <ModelValidatorProvider, StashboxModelValidatorProvider>(context => context .WithInjectionParameters(new KeyValuePair <string, object>("modelValidatorProviders", config.Services.GetServices(typeof(ModelValidatorProvider)) .Where(provider => !(provider is DataAnnotationsModelValidatorProvider)) .Cast <ModelValidatorProvider>()))); config.Services.Clear(typeof(ModelValidatorProvider)); return(container); }
public void ConfigureContainer(IStashboxContainer container) { var proxyBuilder = new DefaultProxyBuilder(); container.Register <IInterceptor, NoInterceptor>(); container.RegisterDecorator <ILevel2Service>(proxyBuilder.CreateInterfaceProxyTypeWithTargetInterface(typeof(ILevel2Service), Array.Empty <Type>(), ProxyGenerationOptions.Default)); container.RegisterDecorator <ILevel2bService>(proxyBuilder.CreateInterfaceProxyTypeWithTargetInterface(typeof(ILevel2bService), Array.Empty <Type>(), ProxyGenerationOptions.Default)); container.RegisterDecorator <ILevel3Service>(proxyBuilder.CreateInterfaceProxyTypeWithTargetInterface(typeof(ILevel3Service), Array.Empty <Type>(), ProxyGenerationOptions.Default)); }
/// <summary> /// Sets a custom <see cref="IFilterProvider"/> which enables property injection in filters. /// </summary> /// <exception cref="ArgumentNullException"> /// If <paramref name="container"/> or <paramref name="config"/> is <c>null</c>. /// </exception> public static IStashboxContainer AddWebApiFilterProviderInjection(this IStashboxContainer container, HttpConfiguration config) { Shield.EnsureNotNull(container, nameof(container)); Shield.EnsureNotNull(config, nameof(config)); container.Register <IFilterProvider, StashboxFilterProvider>(context => context .WithInjectionParameters(new KeyValuePair <string, object>("filterProviders", config.Services.GetServices(typeof(IFilterProvider)) .Cast <IFilterProvider>()))); config.Services.Clear(typeof(IFilterProvider)); return(container); }
public void Register(Func <object> factory, Type serviceType, string contract = null) { _container.Register(serviceType, configurator => { if (string.IsNullOrEmpty(contract)) { configurator.WithInstance(factory()) .AsImplementedTypes(); } else { configurator.WithInstance(factory()) .WithName(contract) .AsImplementedTypes(); } }); }
public void Compose(IStashboxContainer container) { container.Register <ITest1, Test11>(); container.Register <ITest2, Test12>(); }