AutoFac简单案例

1.下载NuGet包

2.控制台输入命令

Install-Package Autofac.Mvc5 -Version 4.0.2

3.引用命名空间

using System.ComponentModel;
using Autofac;

4.案例展示

namespace ConsoleApp1
{
  class Program
  {
    static void Main(string[] args)
    {
      ContainerBuilder builder = new ContainerBuilder();//容器构造器 组件中的类型通过此对象注册到容器中
      builder.RegisterType<AutoFacManager>();//注册类型
      builder.RegisterType<Worker>().As<IPerson>();//注册类型且用as方法指定此类型是IPerson接口
      using (Autofac.IContainer container = builder.Build())//build方法创建容器
      {
        AutoFacManager manager = container.Resolve<AutoFacManager>();//通过resolve方法取得对象
        manager.Say();
      }
      Console.ReadKey();
    }
  }


    public interface IPerson
    {
      void Say();
    }

    public class Worker : IPerson
    {
      public void Say()
      {  
        Console.WriteLine("我是一个老师!");
      }
    }

    public class Student : IPerson
    {
      public void Say()
      {
        Console.WriteLine("我是一个学生!");
      }
    }

    public class AutoFacManager
    {
      IPerson person;

      public AutoFacManager(IPerson MyPerson)
      {
        person = MyPerson;
      }

    public void Say()
    {
      person.Say();
    }
  }
}

posted @ 2019-11-06 16:56  乐蕊  阅读(322)  评论(0)    收藏  举报