• 依赖注入(Autofac)


    1.下载autofac压缩包:http://code.google.com/p/autofac/downloads/list

    2.解压获得autofac.dll和autofac.configuration.dll文件

    依赖注入顾名思义 要存在依赖关系

    例如:

       class DataBaseManager
        {
            IDataBase _idatabase;
            public DataBaseManager(IDataBase idatabase)
            {
                
            }
        }
    

     下面是上图中需要的接口和相应的基类:

     interface IDataBase
        {
            string Name { get;}
            void Select(string commandText);
            void Insert(string commandText);
            void Update(string commandText);
            void Delete(string commandText);
        }
     class SqlDataBase : IDataBase
        {
            public string Name { get { return "sql"; } }
            public void Select(string commandText)
            {
                Console.WriteLine("'{0}'  is  {1}",commandText,Name);
            }
            public void Insert(string commandText)
            {
                Console.WriteLine("'{0}'  is  {1}", commandText, Name);
            }
            public void Update(string commandText)
            {
                Console.WriteLine("'{0}'  is  {1}", commandText, Name);
            }
            public void Delete(string commandText)
            {
                Console.WriteLine("'{0}'  is  {1}", commandText, Name);
            }
        }
        class OracleDataBase : IDataBase
        {
            public string Name { get { return "oracel"; } }
            public void Select(string commandText)
            {
                Console.WriteLine("'{0}'  is  {1}", commandText, Name);
            }
            public void Insert(string commandText)
            {
                Console.WriteLine("'{0}'  is  {1}", commandText, Name);
            }
            public void Update(string commandText)
            {
                Console.WriteLine("'{0}'  is  {1}", commandText, Name);
            }
            public void Delete(string commandText)
            {
                Console.WriteLine("'{0}'  is  {1}", commandText, Name);
            }
        }


    下面我们在主函数中通过autofac实现简单的注入:

    注入前首先要对部分类进行注册 注册的方法有好多种 RegisterInstance RegisterType  Register RegisterMoudle RegisterControllers RegisterAssemblyTypes 我知道的就这些

    static void Main(string[] args)
            {          
                var builder = new ContainerBuilder();
                builder.RegisterType<SqlDataBase>().As<IDataBase>();
                //builder.RegisterInstance(new OracelDataBase()).As<IDataBase>();
    //builder.RegisterType<DataBaseManager>();和下面一行的结果相同 builder.Register(c=>new DataBaseManager(c.Resolve<IDataBase>())); using(var container=builder.Build()) { var manager=container.Resolve<DataBaseManager>(); manager.Select("Select * from database"); } Console.ReadKey(); }
  • 相关阅读:
    Struts2 (二)入门
    Struts2 (一)入门
    Hibernate 配置和注解式 ,关联关系
    Hibernate入门,HQL,双向表关联关系
    web自定义标签
    Spring整合MyBatis 基础
    PHP字符串——字符串函数
    php功能模块学习笔记
    PHP常用符号和函数
    asp xmlhttp 读取文件
  • 原文地址:https://www.cnblogs.com/steben/p/3399620.html
Copyright © 2020-2023  润新知