专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »编程思想 » unity:依赖注入容器Unity Application Block(2):Unity的春天 »正文

unity:依赖注入容器Unity Application Block(2):Unity的春天

来源: 发布时间:星期五, 2009年1月9日 浏览:60次 评论:0
  本文举例源代码或素材下载

  春天傍晚太阳下去了月亮还没有出只剩下片乌蓝天和几绺徐徐

  希望这个开篇蜚语能给您带来春天感觉和乍爽!

  其实.net春天也来了:Enterprise Library 4.0来了;MVC来了;Unity来了;他老爹Scott Guthrie特洛夫斯基也跟着来了

  “如果把个.net员拘留几个月那么当他越狱出来时候在某个技术方面也许会被我们落下整整个世纪!!”

  OK,那就让我们体会浸染这“ 2重春”快感吧!

  别找了先这个“依赖注入容器Unity Application Block(2):”是吸取日月精华从石缝里蹦出来我不老歌上是没有“依赖注入容器Unity Application Block(1)”那就让我这个说书用充满乡音口吻跳过水坑绕过小村开始正文:

  资源:

  Enterprise Library 4.0中依赖注入容器(Unity)预览

  依赖注入容器Unity Application Block(1):快速入门

  (来自Terrylee博客)

  有(1)故有此(2)

  :本文要点:

  1.使用Unity如何实现Castle里自动装配(IOC)

  2.使用Unity需要注意那些

   2:Unity实现自动装配(Don't call me,I will call u)

  在开始这场战争前建议大家先看看这个:Castle IOC容器快速入门 (来自Terrylee博客),也算作份战前通告吧举例代码也尽量形近于她!

  举例场景:记录日志时候我们采用区别模板来展现区别日志风格

  代码准备:

  1.两个接口代码

ILog.cs
/*
* 描述:日志接口:把“写日志”这个行为抽象出来
* 功能:
* overred 2008/03/04 惊蛰前
* http://overred.cnblogs.com
*/
using ;
using .Collections.Generic;
using .Linq;
using .Text;


UnityIOCDemo
{
  erface ILog
  {
    void Write( msgStr);
  }
}


  ILogFormatter.cs

/*
* 描述:日志模板接口
* 功能:
* overred 2008/03/04 惊蛰前
* http://overred.cnblogs.com
*/
using ;
using .Collections.Generic;
using .Linq;
using .Text;


UnityIOCDemo
{


  erface ILogFormatter
  {
     Format( msgStr);
  }
}


  2.接口实现类:

  (1)写日志类(Log.cs):

/*
* 描述:写日志
* 功能:可以使用模板格式写入日志
* overred 2008/03/04 惊蛰前
* http://overred.cnblogs.com
*/
using ;
using .Collections.Generic;
using .Linq;
using .Text;


UnityIOCDemo
{
   Log:ILog
  {
    private ILogFormatter _format;



    public Log(ILogFormatter format)
    {
      this._format = format;
    }


    /// <summary>
    /// ILog接口思路方法实现
    /// </summary>
    /// <param name="msgStr"></param>
    public void Write( msgStr)
    {
       str = _format.Format(msgStr);
      Console.WriteLine(str);
    }
  }
}


  (2)日志模板类(LogFormatter.cs)

/*
* 描述:日志模板类
* 功能:
* overred 2008/03/04 惊蛰前
* http://overred.cnblogs.com
*/
using ;
using .Collections.Generic;
using .Linq;
using .Text;


UnityIOCDemo
{
   LogFormatter:ILogFormatter
  {
    public Format( msgStr)
    {
       .Format("LogFormatter:[{0}]",msgStr);
    }
  }
}


  3.创建容器、注册接口并映射思路方法实现控制反转(Program.cs)

1 using ;
2 using .Collections.Generic;
3 using .Linq;
4 using .Text;
5
6 using Microsoft.Practices.Unity;
7
8 UnityIOCDemo
9 {
10   Program
11   {
12     void Main( args)
13     {
14       //创建容器
15       IUnityContainer container = UnityContainer;
16
17       //注册接口并映射到实现思路方法
18       container.Register<ILogFormatter, LogFormatter>;
19       container.Register<ILog, Log>;
20
21       //获取组件
22       ILog log = container.Get<ILog>;
23
24       //写日志思路方法
25       log.Write("overred");
26     }
27   }
28 }
29


  运行结果:

  11     }

  注意:第7行特性不能加在第1行的上否则会报错为:你有多个构造所以是靠下原则!!

   4 整理总结

  这两天家里上网不便故研究Unity以解闷暂得出以上经验和大家分享Unity新版本马上开张造势!!!

  你有暂住证吗?拘留你10天我们就领先你半个世纪!!!

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: