Ren*_*eza 1 razor asp.net-core-mvc asp.net-core-2.1
我正在使用Razor类库来制作可在多个ASP.NET Core MVC项目中使用的可重用的复杂视图(包括其控制器和几个View组件)。问题是控制器使用依赖项注入(名为“ GatewayProxy”和字符串本地化的自定义服务)。将服务注入RCL内的控制器的正确方法是什么?
这是我的RCL的结构:
这是例外:
您提到了如何通过将依赖项添加到主项目的Startup.cs来解决此问题的方法。但是请注意,此可重用库的任何使用者可能都不记得(或不知道)您的库需要哪些依赖项。
您可以解决此问题的方法是IServiceCollection在Rcl中创建一个进行依赖项注册的扩展。
public static void AddMyRclServices(this IServiceCollection serviceCollection, IConfiguration config)
{
serviceCollection.AddTransient<IRclService1, RclService1>();
serviceCollection.AddScoped<IRclService2, RclService2>();
}
Run Code Online (Sandbox Code Playgroud)
然后在Startup.cs您的MVC项目中调用扩展程序
using Rcl.Extensions
public void ConfigureServices(IServiceCollection services)
{
services.AddMyRclServices(config);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
522 次 |
| 最近记录: |