c# 依赖注入
基本思想是,当一个对象需要其他对象来完成它的工作(例如,数据库连接)时,而不是在内部创建该对象,而是将该对象"注入"到该对象中,通常作为构造函数参数,或者由在使用该对象之前设置的公共属性进行。
这样做的好处是可以从外部更改所用对象的值(如果对象声明为接口,则这一点尤其正确)。这种方法的一个常见用途是用单元测试的模拟对象替换具体对象。
一 应用场景
.net core mvc/api
二 应用目的
是我要什么你就给我送过来,别让我大老远的找你去拿
三 基本用法
一般有两种用法:
1、定义一个接口或者抽象类IA,然后类A实现IA,当然也可以A、B、C、D多个类实现IA
2、直接定义类A、B、C等,不考虑派生类,直接注入到容器里。
关于具体实现一般是在构造函数中注入 另一种方式官方不推荐 这里就不介绍了
四 用法一实操过程
1、先定义一个接口
public interface ITest
{
string GetName();
}
2、定义一个实体类实现这个接口
public class TestA:ITest
{
public string GetName()
{
return "BugChang";
}
}
3、在Startup里注册服务(实体类)
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<ITest, TestA>();
services.AddMvc();
}
4、Controller层调用
private readonly ITest _test;
public HomeController(ITest test)
{
_test = test;
}
public IActionResult Test()
{
ViewBag.Name = _test.GetName();
return View();
}
<ul>
<li>@ViewBag.Names</li>
</ul>
四 用法二实操过程
定义实体类
public class Test
{
public string GetName()
{
return "BugChang";
}
}
注入服务(实体类)
services.AddSingleton<Test>();
其它代码相同

浙公网安备 33010602011771号