大家好 有个问题想问一下 ;
我的业务 分了好多库,然后每个库的数据表都一样,只是数据不一样。
我是想Controller 给的参数 来确定 链接字符串 然后把链接字符串传给service 然后service 再穿给dal ;
这样的话 再注入的时候 就需要参数了。 请问 这样做可以吗? 有没有 更好点方式?
构造函数注入 IConfiguration ,通过 IConfiguration 从 appsettings.json 中读取不同的连接字符串
public IActionResult Index(IConfiguration configuration)
{
configuration.GetConnectionString("A");
return View();
}
好的 那再麻烦问一下 ,那注入 iservice 不能注入了吧 Controller 里 写吗
如 :string aConnectionStr= configuration.GetConnectionString("A");
IUser iuser=new User(aConnectionStr);
@马玉溁: 构造函数可以注入多个接口
@dudu: 谢谢 大神
@dudu: 我还是不明白 像刚才您说得这种 我再注册service接口得时候 这么做啊?
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
//services.AddScoped<IPaperService,PaperService>// 这里如何注册接口呢?
}
@马玉溁: IConfiguration 接口不需要注册,系统自动注册了
@dudu: 我是像问得是 我自己写得iservice IPaperService 这个接口如何注册呢? 他得实现是需要传递参数得?
@dudu: 麻烦帮忙 看下 这个问题 。
@马玉溁: services.AddScoped<IPaperService>(new PaperService(""));
@dudu: 问题是 业务new PaperService("") 这个参数是数据库链接字符串 。 我刚才问得是 我想 从 Controller 获取参数 然后确定链接哪个 库 现在 从这里注册得话我还不知道连哪个库 。
@马玉溁: 可以 Controller 中 new PaperService("")
或者使用工厂模式解决这个问题
这个问题解决了吗?