我希望将以下对象与 appsettings.json 中的数据在 ServiceCollection 中绑定,但我无法更改类或接口的设计:
public class TransferOptions :ITransferOptions
{
public IConnectionInfo Source {get;set;}
public IConnectionInfo Destination {get;set;}
}
public class ConnectionInfo : IConnectionInfo
{
public string UserName{get;set;}
public string Password{get;set;}
}
public interface ITransferOptions
{
IConnectionInfo Source {get;set;}
IConnectionInfo Destination {get;set;}
}
public interface IConnectionInfo
{
string UserName{get;set;}
string Password{get;set;}
}
这是我的数据在 appsettings.json 文件中:
{
"TransferOptions":{
"Source ":{
"UserName":"USERNAME",
"Password":"PASSWORD"
},
"Destination":{
"UserName":"USERNAME",
"Password":"PASSWORD"
}
}
}
以下是我的服务提供商配置:
var provider=new ServiceCollection()
.Configure<TransferOptions>(options => _configuration.GetSection("TransferOptions").Bind(options))
.BuildServiceProvider();
这是我得到错误的部分
无法创建'IConnectionInfo'类型的实例,因为它是一个抽象类或接口:
var transferOptions =_serviceProvider.GetService<IOptions<TransferOptions>>()