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();
            }
        }
    }
  • 相关阅读:
    MySQL 索引优化
    [转]多列索引
    abstract class和interface有什么区别? [转]
    PM knowledge
    委托应用场景[摘]
    Web 服务描述语言工具 (Wsdl.exe)[FROM msdn]
    C# 四个基本技巧[转]
    What are database states? [forward]
    学做程序经理[摘]
    SET IDENTITY_INSERT 学习心得[转]
  • 原文地址:https://www.cnblogs.com/lbjcoder/p/8301424.html
Copyright © 2011-2022 走看看