IOcelotBuilder opens the IMvcCoreBuilder property for easy customization (#790)

* IOcelotBuilder opens the IMvcCoreBuilder property for easy customization

* Adjustment code
This commit is contained in:
阿凌 2019-03-11 22:39:27 +08:00 committed by geffzhang
parent 49b2a0f0ce
commit 4a1e8d571b
2 changed files with 10 additions and 6 deletions

View File

@ -12,6 +12,8 @@ namespace Ocelot.DependencyInjection
IConfiguration Configuration { get; }
IMvcCoreBuilder MvcCoreBuilder { get; }
IOcelotBuilder AddDelegatingHandler<T>(bool global = false)
where T : DelegatingHandler;

View File

@ -42,6 +42,7 @@ namespace Ocelot.DependencyInjection
{
public IServiceCollection Services { get; }
public IConfiguration Configuration { get; }
public IMvcCoreBuilder MvcCoreBuilder { get; }
public OcelotBuilder(IServiceCollection services, IConfiguration configurationRoot)
{
@ -133,7 +134,7 @@ namespace Ocelot.DependencyInjection
//add asp.net services..
var assembly = typeof(FileConfigurationController).GetTypeInfo().Assembly;
Services.AddMvcCore()
this.MvcCoreBuilder = Services.AddMvcCore()
.AddApplicationPart(assembly)
.AddControllersAsServices()
.AddAuthorization()
@ -144,6 +145,7 @@ namespace Ocelot.DependencyInjection
Services.AddWebEncoders();
}
public IOcelotBuilder AddSingletonDefinedAggregator<T>()
where T : class, IDefinedAggregator
{
@ -170,7 +172,7 @@ namespace Ocelot.DependencyInjection
if(global)
{
Services.AddTransient<THandler>();
Services.AddTransient<GlobalDelegatingHandler>(s => {
Services.AddTransient<GlobalDelegatingHandler>(s =>{
var service = s.GetService<THandler>();
return new GlobalDelegatingHandler(service);
});