[英]Injecting strings and services with Net Core default DI
我有一个 Net Core 2.1 控制台应用程序,我在其中执行以下操作:
class Program
{
static void Main(string[] args)
{
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", false)
.Build();
var fullPath = configuration.GetValue<string>("tempPath:fullPath");
serviceCollection.AddTransient<MyService>();
serviceCollection.AddTransient<Worker>();
...
public class Worker
{
public string FullPath {get; set;}
private readonly MyService _myService;
public Worker(MyService myService,
string fullpath)
{
_myService = myService;
FullPath=fullpath;
}
换句话说,我需要以某种方式在我的Worker
类中注入服务和配置字符串。
有人可以建议我正确的方法吗?
只需将您的 DI 配置更改为以下内容:
var fullPath = configuration.GetValue<string>("tempPath:fullPath");
serviceCollection.AddTransient<MyService>();
serviceCollection.AddTransient<Worker>(x => new Worker(x.GetRequiredService<MyService>(), fullPath));
或者按照建议使用IOptions
接口将您的配置对象注入到类中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.