Unity 基础

本文介绍了如何使用 Unity IoC 容器实现日志功能,包括日志类和接口定义,以及注册和调用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
        }
    }

转载于:https://www.cnblogs.com/FlyCat/archive/2012/09/19/2694404.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值