如何解决如何在将Iconfiguration传递到其构造函数的asp.net核心中创建单例服务
我需要为我的构造函数创建一个服务类,在其中我需要从appsettings.json加载很多配置。 我希望将此服务创建为单例,并且需要在服务本身中加载配置值。因此,请任何人向我建议最好的方法。我正在创建asp.net核心webapi,并使用其在容器中内置的核心DI。
解决方法
与ASP.NET Core一起使用的主机已经预先注册了配置。因此,您可以像注册其他任何单例服务一样注册您的服务,并通过在构造函数中要求IConfiguration
来使其依赖于配置:
public class MyService
{
private readonly IConfiguration _config;
public MyService(IConfiguration config)
{
_config = config;
}
}
然后,您可以直接在ConfigureService
方法中将该服务注册为单例:
services.AddSingleton<MyService>();
现在依赖于您的服务的东西(例如构造函数)将自动获得对该服务实例的引用。而且由于它已注册为单例,因此只能由DI容器创建一次。
如果您想对配置进行更多控制,那么建议您改用options pattern,以确保可以使用强类型配置,并避免无关的配置值溢出到不应使用的服务中。没有访问权限。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。