依赖注入:
A Class 依赖B Class。B Class 是接口C的实现。
在A中对C进行依赖注入,注入方法使用构造函数。
通过AutoFac实现B Class注入到C。
结果:
A只与C有依赖关系,与B没有。
在A中实现对接口的编程。
通过AutoFac可以调整B Class,此时A的代码不需要做变动。
Demo
using System;
using ClassLibrary1;
using ConnService;
using Service;
using Autofac;
namespace ConsoleApp1
{
class Program
{
private static IContainer Container { get; set; }
static void Main(string[] args)
{
var builder = new ContainerBuilder();
builder.RegisterType<Xconn>().As<Conn>();//注册组件(依赖注入时使用接口的类的注入)。
builder.RegisterType<ServiceFac>();//注册ServiceFac
Container = builder.Build();
using (var scope = Container.BeginLifetimeScope())
{
var conn = scope.R