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;
            }
        }
  • 相关阅读:
    Java
    Leetcode 计划
    Java虚拟机
    浅谈 MVP in Android
    【PAT】B1074 宇宙无敌加法器(20 分)
    【PAT】B1076 Wifi密码(15 分)
    【PAT】B1075 链表元素分类(25 分)
    【PAT】B1077 互评成绩计算(20 分)
    【PAT】B1078 字符串压缩与解压(20 分)
    【PAT】B1079 延迟的回文数(20 分)
  • 原文地址:https://www.cnblogs.com/FlyCat/p/2694404.html
Copyright © 2011-2022 走看看