Autofac基础入门

1) 创建接口项目和实现类项目; 编写接口,编写实现类。

接口类库

namespace MyIBLL
{
    public interface IUserBll
    {
        bool Check(string username, string pwd);
        void AddNew(string username, string pwd);
    }
}

实现接口类库

namespace MyBLLImpl
{
    public class UserBll : IUserBll
    {
        public void AddNew(string username, string pwd)
        {
            Console.WriteLine("新增用户,username="+username);
        }

        public bool Check(string username, string pwd)
        {
            Console.WriteLine("检查用户,username=" + username);
            return true;
        }
    }
}

使用  安装 Install-Package Autofac

 class Program
    {
        static void Main(string[] args)
        {
            //IUserBll bll = new UserBll();
            //bll.AddNew("aaa", "123");
            ContainerBuilder builder = new ContainerBuilder();
            //把UserBll注册为IUserBll的一个实现类
            builder.RegisterType<UserBll>().As<IUserBll>();
            IContainer container = builder.Build();
            //创建IUserBll实现类的对象
            IUserBll bll = container.Resolve<IUserBll>();//new UserBll
            bll.AddNew("aaa", "132");

            Console.WriteLine("ok");
            Console.ReadKey();
        }
    }

 

或者将整个程序集都加载也可以实现

namespace ZSZ.Tests
{
    class Program
    {
        static void Main(string[] args)
        {
            //IUserBll bll = new UserBll();
            //bll.AddNew("aaa", "123");
            ContainerBuilder builder = new ContainerBuilder();
            #region 单个加载实现类

            //把UserBll注册为IUserBll的一个实现类
            //builder.RegisterType<UserBll>().As<IUserBll>();
            //IContainer container = builder.Build();
            //创建IUserBll实现类的对象
            //IUserBll bll = container.Resolve<IUserBll>();//new UserBll
            //bll.AddNew("aaa", "132");
            #endregion
            //加载程序集 类库MyBLLImpl
            Assembly asm = Assembly.Load("MyBLLImpl");
            //注册到autofac中
            builder.RegisterAssemblyTypes(asm).AsImplementedInterfaces();
            IContainer container = builder.Build();

            //创建IUserBll实现类的对象
            IUserBll bll = container.Resolve<IUserBll>();//new UserBll
            bll.AddNew("aa", "123");


            Console.WriteLine("ok");
            Console.ReadKey();
        }
    }
}

 

posted @ 2018-01-17 10:24  前行。。。  阅读(276)  评论(0编辑  收藏  举报