今天在网上找了一些unity资料研究,出了好多问题,编译无法通过,经人指点总算成功编译运行,做个笔记,整理如下:

一、下载unity

二、在项目中添加Microsoft.Practices.Unity.dll和Microsoft.Practices.Unity.Configuration.dll的引用;

三、app.config如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,Microsoft.Practices.Unity.Configuration" />
</configSections>
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<alias alias="singleton" type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager,Microsoft.Practices.Unity"></alias>
<alias alias="ISayHello2" type="TestUnity.ISayHello2,TestUnity"></alias>
<alias alias="SayHello2Think" type="TestUnity.SayHello2Think,TestUnity"></alias>
<alias alias="SayHello2ACloud" type="TestUnity.SayHello2ACloud,TestUnity"></alias>
<alias alias="ISingletonDemo" type="TestUnity.ISingletonDemo,TestUnity"></alias>
<alias alias="SingletonDemoImp1" type="TestUnity.SingletonDemoImp1,TestUnity"></alias>
<container name="TestUnity">
<register type="ISayHello2" mapTo="SayHello2Think" name="think"/>
<register type="ISayHello2" mapTo="SayHello2ACloud" name="aCloud"/>
<register type="ISingletonDemo" mapTo="SingletonDemoImp1" name="singletonDemoImp1">
</register>
</container>
</unity>
</configuration>

  Unity的配置节的名称为”Unity",节处理程序的类型为 Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,它包含在程序集 Microsoft.Practices.Unity.Configuration 中;

name:在注册此类型时使用的名称。此属性是可选的,如果不指定此属性,所在的 add 元素即为默认的类型映射。

type:容器中配置的源类型。如果这是映射注册,这就是映射的起始对象的类型;如果这是单件注册,这就是对象的类型。此属性是必须的。

mapTo:类型映射的目标类型。如果这是映射注册,这就是映射的目标对象的类型。此属性是可选的。

lifetime:设置用于给定的类型和名称的生命周期。是一个来自 LifetimeStyle 枚举的值。有效的值是 Transient(默认),它导致了容器每次都创建一个新的实例;以及Singleton,它使容器为每个请求返回同一实例。如果在配置一个单件时同时指定了type和mapto属性,SetSingleton 方法将返回指定在 mapTo 属性中的类型。如果mapTo属性没有指定值,SetSingleton 方法将返回指定在 type 属性中的类型。

四、新建一个项目,在里面加入如下几个文件:

ISayHello2.cs

    public interface ISayHello2
    {
        string SayHello();
    }

SayHello2Think8848.cs


    public class SayHello2Think8848 : ISayHello2
    {
        #region ISayHello2 成员         public string SayHello()
        {
            return "Hello think8848!";
        }         #endregion
    }

SayHello2ACloud.cs

 

    public class SayHello2ACloud : ISayHello2
    {
        #region ISayHello2 成员         public string SayHello()
        {
            return "Hello aCloud!";
        }         #endregion
    }
 

ISingletonDemo.cs

    public interface ISingletonDemo
    {
        DateTime GetInitTime();
    }

SingletonDemoImpl.cs

    public class SingletonDemoImpl : ISingletonDemo
    {
        private DateTime time;         public SingletonDemoImpl()
        {
            this.time = DateTime.Now;
        }         #region ISingletonDemo 成员         public DateTime GetInitTime()
        {
            return this.time;
        }         #endregion
    }

五、Main方法如下:

 static void Main()
{
UnityContainer myContainer=new UnityContainer();
UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");
section.Configure(myContainer, "TestUnity");
// section.Containers["TestUnity"].Configure(myContainer);
ISayHello2 sayHello2ACloud = myContainer.Resolve<ISayHello2>("aCloud");
Console.WriteLine(sayHello2ACloud.sayHello()); }

  

unity--IOC框架资料整理的更多相关文章

  1. 今天研究Unity Ioc 框架

    今天研究Unity Ioc 框架,被自己坑了两个多小时. 运行就报错,反反复复检查了很多次,配置文件,代码都没有问题,也从新写了好几遍. 最后仔细看报错消息才知道,config文件没有生成到目录……… ...

  2. MVC4 基于 Unity Ioc 框架的 ControllerFactory

    首先引入Untiy框架. 可以在NuGet程序包 管理器中直接安装. 新建 继承DefaultControllerFactory  的UnityControllerFactory: 重写虚方法GetC ...

  3. .NET Unity IOC框架使用实例

    1.IOC简介 IOC(Inversion of Control), 控制反转 DI (Dependency Injection),依赖注入 IOC的基本概念是:不创建对象,但是描述创建它们的方式.在 ...

  4. 三款Javascript SPAs框架资料整理和总结

    一.框架介绍 RequireJS 资料:http://www.requirejs.cn/RequireJS的目标是鼓励代码的模块化,它使用了不同于传统<script>标签的脚本加载步骤.可 ...

  5. Unity Ioc框架简单例子

    IOC:英文全称:Inversion of Control,中文名称:控制反转,它还有个名字叫依赖注入(Dependency Injection).作用:将各层的对象以松耦合的方式组织在一起,解耦,各 ...

  6. 对于zuul服务网关框架资料整理

    本次博客只是整理了一些 看过的博客.源码等 zuul入门(1)zuul 的概念和原理 https://www.cnblogs.com/lexiaofei/p/7080257.html 深入理解Zuul ...

  7. .NET领域最为流行的IOC框架之一Autofac WebAPI2使用Autofac实现IOC属性注入完美解决方案 AutoFac容器初步

    .NET领域最为流行的IOC框架之一Autofac   一.前言 Autofac是.NET领域最为流行的IOC框架之一,微软的Orchad开源程序使用的就是Autofac,Nopcommerce开源程 ...

  8. 使用Microsoft的IoC框架:Unity来对.NET应用进行解耦

    1.IoC/DI简介 IoC 即 Inversion of Control,DI 即 Dependency Injection,前一个中文含义为控制反转,后一个译为依赖注入,可以理解成一种编程模式,详 ...

  9. 【微服务】使用spring cloud搭建微服务框架,整理学习资料

    写在前面 使用spring cloud搭建微服务框架,是我最近最主要的工作之一,一开始我使用bubbo加zookeeper制作了一个基于dubbo的微服务框架,然后被架构师否了,架构师曰:此物过时.随 ...

随机推荐

  1. [转]DllMain中不当操作导致死锁问题的分析——DllMain中要谨慎写代码(完结篇)

    在CSDN中发现这篇文章,讲解的比较详细,所以在这里备份一个.原文链接:http://blog.csdn.net/breaksoftware/article/details/8167641 DllMa ...

  2. Vmware出现报错The VMware Authorization Service is not running.之后无法上网解决

    今天一大早开VMware,启动ubuntu时出现了报错The VMware Authorization Service is not running,服务Authorization没有运行. 这之前一 ...

  3. CSS/CSS3 如何实现元素水平居中

    更新:可直接访问 [CSS/CSS3 如何实现元素水平居中] 查看效果,右键查看源代码 -------------------------------------------------分割线---- ...

  4. 剑指Offer14 逆序链表

    /************************************************************************* > File Name: 14_Revers ...

  5. hdu 4115 2-SAT判定

    思路:将每个回合的平手和赢最为一对对立状态.那么后面就是2-SAT判断了. #include<iostream> #include<cstdio> #include<al ...

  6. asp.net MVC dropList 绑定

    废话我就不多说了..上个图.给自己备忘一下

  7. HTML插入SWF

    1.插入透明flash代码 <object classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000" codebase=" ...

  8. Camera 幻灯片播放

    Camera 幻灯片播放与轮播有些类似,不同的是在camera 幻灯片播放时有很多很炫很酷的播放效果 : 简单的介绍Camera 插件的使用方式: 1.引入js: <script src=&qu ...

  9. java操作xml的一个小例子

    最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...

  10. 每天一道LeetCode--409 .Longest Palindrome

    Given a string which consists of lowercase or uppercase letters, find the length of the longest pali ...