zoukankan      html  css  js  c++  java
  • 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();
            }
        }
    }
  • 相关阅读:
    爬取淘宝商品信息
    eclipse 搭建Robotium环境--apk 环境搭建
    android studio2.0 搭建Robotium环境--有被测源代码的情况下
    mysql 特殊语句
    电脑浏览器访问文件夹
    mindmanager 15 停止工作
    yum被lock Existing lock /var/run/yum.pid: another copy is running as pid 1580. Another app is currently holding the yum lock; waiting for it to exi
    jenkins安装及部署
    ant+jmeter
    charles抓包及篡改
  • 原文地址:https://www.cnblogs.com/lbjcoder/p/8301424.html
Copyright © 2011-2022 走看看