nik*_*3ro 5 c# asp.net-core-mvc .net-core asp.net-core
我们有标准的 ASP.NET Core 解决方案,Microsoft.Extensions.DependencyInjection需要根据配置设置注册某些控件。
某些ApiController继承自的示例ControllerBase及其所有相关操作仅应在某些bool为真时注册。
这可能吗?我看了看,services.AddMvc()但没有看到任何可以轻松让我执行以下操作的选项:
ExampleController被注册ExampleController及其所有相关操作IServiceCollection正如评论中所指出的,实现功能过滤器并将其注册到您的服务配置中:
public class MyFeatureProvider: ControllerFeatureProvider
{
private readonly bool condition;
public MyFeatureProvider(bool condition)
{
this.condition = condition;
}
protected override bool IsController(TypeInfo typeInfo) {
if (condition && typeInfo.Name == "ExampleController") {
return false;
}
return base.IsController(typeInfo);
}
}
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().ConfigureApplicationPartManager(mgr => {
mgr.FeatureProviders.Clear()
mgr.FeatureProviders.Add(new MyFeatureProvider(true));
});
}
}
Run Code Online (Sandbox Code Playgroud)
我将链接源代码,以防您想查看库存标准实现并查看其工作原理以供参考
| 归档时间: |
|
| 查看次数: |
1370 次 |
| 最近记录: |