我需要为我的构造函数创建一个服务类,其中我需要从appsettings.json加载大量配置。我希望这个服务被创建为单例,并且需要在服务本身中加载配置值。所以请任何人建议我做这件事的最好方法。我正在创建asp.net核心webapi,并使用它的核心DI内置容器。
发布于 2020-10-12 05:34:52
该配置已由与ASP.NET核心一起使用的主机预注册。因此,您可以像注册任何其他单例服务一样注册您的服务,并通过在构造函数中要求IConfiguration
来使其依赖于配置:
public class MyService
{
private readonly IConfiguration _config;
public MyService(IConfiguration config)
{
_config = config;
}
}
然后,您可以直接在ConfigureService
方法中将此服务注册为单例:
services.AddSingleton<MyService>();
现在依赖于您的服务的东西,例如构造函数,将自动获得对该服务实例的引用。因为它被注册为单例,所以它只会被DI容器创建一次。
如果您希望对配置有更多的控制,那么我建议您调整options pattern,以确保您可以使用强类型的配置,并避免不相关的配置值溢出到不应该访问它们的服务中。
https://stackoverflow.com/questions/64308747
复制相似问题