zoukankan      html  css  js  c++  java
  • autofac笔记

     /// <summary>
        /// 数据源操作接口
        /// </summary>
        public interface IDataSource
        {
            /// <summary>
            /// 获取数据
            /// </summary>
            /// <returns></returns>
            string GetData();
        }
    
    public class Oracle : IDataSource
        {
            public string GetData()
            {
                return "通过Oracle获取数据";
            }
        }
    
      class Sqlserver : IDataSource
        {
            public string GetData()
            {
                return "通过SQLSERVER获取数据";
            }
        }
    
     /// <summary> 
        /// 数据源管理类
        /// </summary
        public class DataSourceManager
        {
    
            IDataSource _ds;
            string Name;
            /// <summary>
            /// 根据传入的类型动态创建对象
            /// </summary>
            /// <param name="ds"></param>
            public DataSourceManager(string name, IDataSource ds)
            {
                _ds = ds;
                Name = name;
            }
    
            public string GetData()
            {
                return Name + "" + _ds.GetData();
            }
        }
    
    
      public static void test3()
            {
                var builder = new ContainerBuilder();
                builder.RegisterType<DataSourceManager>();
                builder.RegisterType<Sqlserver>().Named<IDataSource>("SqlServer");
                builder.RegisterType<Oracle>().Named<IDataSource>("Oracel");
                using (var container = builder.Build())
                {
                    var ds = container.ResolveNamed<IDataSource>("Oracel");
                    var manager = container.Resolve<DataSourceManager>(new NamedParameter("name", "STONE刘先生"), new NamedParameter("ds", ds));
                    Console.WriteLine(manager.GetData());
                    Console.ReadLine();
                }
            }
  • 相关阅读:
    过滤器,拦截器,监听器的区别
    Spring中的@Transactional(rollbackFor = Exception.class)属性详解
    java进阶知识--JAVA锁
    java进阶知识--23种设计模式
    java进阶知识--初识Jedis
    java进阶知识--初识redis
    java进阶知识--Nginx安装与部署
    java进阶知识--Nginx代理
    Linux常用命令
    Linux权限管理
  • 原文地址:https://www.cnblogs.com/wangchuang/p/12296660.html
Copyright © 2011-2022 走看看