zoukankan      html  css  js  c++  java
  • Unity 基础

    unity是一个轻量级ioc容器,它为方便开发者建立松散耦合的应用程序,可以在 http://unity.codeplex.com/ 下载获取

    一个简单的日志功能的配置:

    日志类和接口:

        public interface ILog
        {
            void LogMessage(string msg);
        }
    
        class LocalLog : ILog
        {
            public void LogMessage(string msg)
            {
                Console.WriteLine("LocalLog..." + msg);
            }
        }
    
        public class RemoteLog : ILog
        {
            public void LogMessage(string msg)
            {
                Console.WriteLine("RemoteLog...." + msg);
            }
        }

    注册和调用:

        class Program
        {
            static void Main(string[] args)
            {
                IUnityContainer unityContainer = new UnityContainer();
                //注册映射
                unityContainer.RegisterType<ILog, LocalLog>("local")
                              .RegisterType<ILog, RemoteLog>("remote");
    
    
                var localLog = unityContainer.Resolve<ILog>("local");
                localLog.LogMessage("msg1");
    
                //构造函数参数传入
                //可以直接传入一个IEnumerable类型的ParameterOverrides,也可以多个ParameterOverride
                //都是key,value的形式
                var t = unityContainer.Resolve<TestLog>(  new ParameterOverrides { 
                            { "param", "yyy" } 
                        });
    
               //也可以这样传入参数
               //unityContainer.Resolve<TestLog>(new ParameterOverride("param", "xxx"));
    
                //通过Dependency特性属性注入
               t.LogService.LogMessage("error1");
    
               Console.WriteLine(t.Param);
            }
        }
    
        class TestLog
        {
            [Dependency("remote")]
            public ILog LogService { get; set; }
    
            public string Param { get; set; }
            public TestLog(string param)
            {
                Param = param;
            }
        }
  • 相关阅读:
    Vue 2.0学习(三)指令与事件
    Vue 2.0学习(二)数据绑定
    Vue 2.0学习(一)简介
    大数据入门学习(一):初识大数据
    Knockout.js(四):自定义绑定
    03 Python基础
    02 测试环境的搭建
    01 自动化测试基础
    第29章 项目10:DIY街机游戏
    第27章 项目8:使用XML-RPC进行文件共享
  • 原文地址:https://www.cnblogs.com/FlyCat/p/2694404.html
Copyright © 2011-2022 走看看