【基础demo】
安装第三方库
代码实现
using Autofac; // 引入 Autofac 库
namespace AutofacDemo
{
//服务接口
public interface IGreetingService
{
void Greet(string name);
}
//服务实现
public class GreetingService : IGreetingService
{
public void Greet(string name)
{
Console.WriteLine($"Hello, {name}!");
}
}
class Program // 主程序类
{
static void Main(string[] args) // 主方法
{
// 创建 Autofac 容器生成器
var builder = new ContainerBuilder();
// 注册接口和实现服务
builder.RegisterType<GreetingService>().As<IGreetingService>();
// 构建容器
var container = builder.Build();
// 使用容器开始一个作用域
using (var scope = container.BeginLifetimeScope())
{
// 解析服务
var greetingService = scope.Resolve<IGreetingService>();
// 调用服务
greetingService.Greet("World");
}
}
}
}
【Demo】使用 Autofac实现依赖注入的步骤:
1.创建容器:builder
2.注册服务:包括接口和实现
3.容器编译:builder.Build()
4.使用容器解析和调用服务
【ABP框架】实现依赖注入方法
【依赖注入的好处】
依赖注入(DI)主要做两件事情:
1.创建对象:使得你在高层代码无需new出对象而是通过容器注入获取
2.生命周期配置管理:
单例模式(Singleton):只创建一次,除非重启服务器。
作用域模式(Scoped):请求一次接口创建一次。
瞬态模式(Transient):每调用一次方法创建一次。(一个接口可能创建多次)