/// <summary> /// /// </summary> /// <param name="options"></param> /// <param name="configurationAction"></param> /// <returns></returns> public static BootstrapperCreationOptions UseAutofac(this BootstrapperCreationOptions options, Action <ContainerBuilder> configurationAction = null) { options.PreConfigureServices(context => { ProxyTargetProvider.Default.Add(new AutofacProxyTargetProvider()); context.Services.AddTransient(typeof(AsyncDeterminationInterceptor <>), typeof(AsyncDeterminationInterceptor <>)); context.Services.AddSingleton <IProxyConventionalAction>(new ProxyConventionalAction()); }); options.UseServiceProviderFactory(new AutofacServiceProviderFactory(configurationAction)); return(options); }
/// <summary> /// /// </summary> /// <param name="options"></param> /// <returns></returns> public static BootstrapperCreationOptions UseAspectCore(this BootstrapperCreationOptions options) { options.PreConfigureServices(context => { ProxyTargetProvider.Default.Add(new AspectCoreProxyTargetProvider()); context.Services.AddSingleton <IProxyConventionalAction>(new ProxyConventionalAction()) .AddSingleton <IAdditionalInterceptorSelector, ConfigureAdditionalInterceptorSelector>() .ConfigureDynamicProxy(c => c.ValidationHandlers.Add(new ConfigureAdditionalAspectValidationHandler(c))); }); options.ConfigureServices(context => context.Services.ReplaceSingleton <IPropertyInjectorFactory, DependencyInjection.PropertyInjectorFactory>() .AddScoped <IServiceResolveCallback, DependencyInjection.PropertyInjectorCallback>().AddTransient(typeof(AspectCoreInterceptorAdapter <>))); options.UseServiceProviderFactory(new AspectCore.Extensions.DependencyInjection.ServiceContextProviderFactory()); return(options); }
/// <summary> /// /// </summary> /// <param name="options"></param> /// <returns></returns> public static BootstrapperCreationOptions UseAspectCore(this BootstrapperCreationOptions options) { options.UseServiceProviderFactory(new AspectCore.Extensions.DependencyInjection.ServiceContextProviderFactory()); options.PostConfigureServices(context => DynamicProxy.InterceptorHelper.RegisterConventionalInterceptor(context.Services)); return(options); }