最近,我一直在嘗試新的asp.net功能並遇到此問題。 我知道我們可以將配置讀爲強類型實例。但我不知道如何將配置注入到我的課程在Microsoft依賴注入。如何從AppSettings讀取配置值並將配置注入接口實例
public interface IProvider
{
IMyConfiguration Configuration {get;}
Task Connect();
}
public abstract class Provider: IProvider
{
private IMyConfiguration _myConfig;
public Provider(IMyConfiguration config)
{
this._myConfig= config;
}
public IMyConfiguration Configuration => _myConfig;
public abstract Task Connect();
}
public class ProviderOne:Provider
{
public ProviderOne(IMyConfiguration config) : base(config)
{
}
public Task Connect()
{
//implementation
}
}
配置類:
public interface IMyConfiguration
{
string TerminalId { get;set; }
bool IsDefault {get;set;}
}
public class MyConfiguration : IMyConfiguration
{
string TerminalId { get;set; }
bool IsDefault {get;set;}
}
,然後在startup.cs如我聲明,則需要通過MyConfiguration。但我找不到這樣做的方法。請指教!
public void ConfigureServices(IServiceCollection services)
{
services.Configure<MyConfiguration>(Configuration.GetSection("MyConfiguration"));
services.AddSingleton<IProvider>(new ProviderOne(//configuration)); //here is the problem
}
好,但有一個問題,可以說我們有不同的MyConfiguration和Provider實例,每個提供程序應該如何連接到它的配置。 – Behzad
@Behzad好的,我已經添加了選項2 – Set
這樣做很好嗎?我的意思是,如果簡單地使用DI,我真的很想在我的應用 – Behzad