bub*_*ing 7 c# dependency-injection .net-core asp.net-core
我发现 .NET Core IOptions 模式(如下面的语法所示)非常有用。
services.Configure<MySettings>(configuration.GetSection("MySettings"));
Run Code Online (Sandbox Code Playgroud)
我还发现 TryAdd 方法有助于防止重复服务注册,如下所示:
services.TryAddTransient<IMyService, MyService>();
Run Code Online (Sandbox Code Playgroud)
我想知道是否有人知道使用 IOptions 完成相同任务的任何技术,或者框架中是否内置了重复注册保护。换句话说,我正在寻找这样的东西:
services.TryConfigure<MySettings>(configuration.GetSection("MySettings"));
Run Code Online (Sandbox Code Playgroud)
事实上,我也有同样的“问题”。我是这样解决的:
if (!services.Any(d => d.ServiceType == typeof(IConfigureOptions<MySettings>)))
{
services.Configure<MySettings>(configSection);
}
Run Code Online (Sandbox Code Playgroud)
该解决方案基于Microsoft TryAdd 代码。
提示:您可以为其创建扩展方法。
| 归档时间: |
|
| 查看次数: |
913 次 |
| 最近记录: |