C# 在不使用ConfigureServices的情况下配置ASP.NET MVC核心控制器实例化
在OWIN的好日子里,在aspnet core之前,可以通过传入HttpConfiguration对象来配置ASP.NET WebApi。在那里,除其他事项外,还可以配置ControllerActivator等。。。如果你想。。。。e、 gC# 在不使用ConfigureServices的情况下配置ASP.NET MVC核心控制器实例化,c#,asp.net-core-mvc,C#,Asp.net Core Mvc,在OWIN的好日子里,在aspnet core之前,可以通过传入HttpConfiguration对象来配置ASP.NET WebApi。在那里,除其他事项外,还可以配置ControllerActivator等。。。如果你想。。。。e、 g appBuilder.UseWebApi(webApiConfig) 在ASP.NET MVC Core中是否有类似的方法可以做到这一点,从而避免使用WebHostBuilder(直接或通过启动约定) e、 g.不使用类似以下内容: var host =
appBuilder.UseWebApi(webApiConfig)
在ASP.NET MVC Core中是否有类似的方法可以做到这一点,从而避免使用WebHostBuilder(直接或通过启动约定)
e、 g.不使用类似以下内容:
var host = new WebHostBuilder()
.ConfigureServices(serviceCollection =>
serviceCollection.AddSingleton<IControllerActivator>(new
ControllerActivator()))
进一步调查…所以。。。需要提供一些必需的服务,以便至少让管道在没有异常的情况下运行。我的主要目标是添加一个自定义IControllerActivator。这就是我最终得到的结果(在浏览WebHostBuilder之后):
希望它能帮到别人所以。。。需要提供一些必需的服务,以便至少让管道在没有异常的情况下运行。我的主要目标是添加一个自定义IControllerActivator。这就是我最终得到的结果(在浏览WebHostBuilder之后):
希望它能帮助某人..看起来像是一个XY问题,你到底想实现什么?我创建了一个可以接受RequestDelegate(或中间件)的代理,这样就可以使用HttpClient(Damian Hickey的一个端口)直接调用它。现在,在“旧”OWIN堆栈中,可以在设置请求/中间件管道时直接传入HttpConfiguration。。。我想做一些类似的事情…看起来像是一个XY问题,你到底想实现什么?我已经创建了一个可以接受RequestDelegate(或中间件)的代理,这样就可以使用HttpClient(Damian Hickey的一个端口)直接调用它。现在,在“旧”OWIN堆栈中,可以在设置请求/中间件管道时直接传入HttpConfiguration。。。我想做类似的事情。。。
var serviceCollection = new ServiceCollection();
serviceCollection.AddMvcCore();
var serviceProvider = serviceCollection
.AddSingleton<IControllerActivator>(new ControllerActivator())
.AddLogging()
.BuildServiceProvider();
ApplicationBuilder builder = new ApplicationBuilder(serviceProvider);
builder.UseMvc();
return builder.Build();
System.InvalidOperationException: Unable to resolve service for type 'Microsoft.Extensions.Options.IOptions`1[Microsoft.AspNetCore.Mvc.MvcOptions]' while attempting to activate 'Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactory'
var listener = new DiagnosticListener("Microsoft.AspNetCore");
var serviceCollection = new ServiceCollection();
serviceCollection.AddMvcCore();
var serviceProvider = serviceCollection
.AddSingleton<IControllerActivator>(new ControllerActivator())
.AddLogging()
.AddSingleton<DiagnosticSource>(listener)
.AddOptions()
.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>()
.BuildServiceProvider();
ApplicationBuilder builder = new ApplicationBuilder(serviceProvider);
builder.UseMvc();
return builder.Build();