对Unity注入技术最简单的理解和应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对Unity注入技术最简单的理解和应用相关的知识,希望对你有一定的参考价值。

Unity注入技术,我决定最大的作用在于一个项目,尤其是WEB项目在更远其中一个类时,不需要重新生成,直接通过WEBCONFIG文件的修改就可以更改对应关系和功能,实验步骤如下:

 

1:新建一个接口ISpeak

2 : 新建两个类分别是speak1和speak2,都实现ISpeak

3:在webconfig的<configSections>中添加:<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,Microsoft.Practices.Unity.Configuration"/>

4:在webconfig中设置对应关系:

<unity>
    <aliases>
      <add alias="ISpeak" type="IBLL.ISpeak,IBLL"/>
      <add alias="speak1" type="BLL.speak1,BLL"></add>
      <add alias="speak2" type="BLL.Speak2,BLL"></add>
    </aliases>
    <container name="MyContainer">
      <register type="ISpeak" mapTo="speak2"></register>
    </container>
  </unity>

5:在网页输出时读取配置文件:

            IUnityContainer container = new UnityContainer();
            UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");//获取指定名称的配置节  
            section.Configure(container, "MyContainer");//获取特定配置节下已命名的配置节<container name=‘MyContainer‘>下的配置信息


            ISpeak speak1 = container.Resolve<ISpeak>();
            string show = speak1.Speak();


            ViewData["speak"] = show;
            return View();

6:前台页面输出 @ViewData["speak"]

7:更改webconfig:<register type="ISpeak" mapTo="speak1"></register>

8:刷新页面,这是@ViewData["speak"]显示的数据已经成为speak1中的数据了

 

以上是关于对Unity注入技术最简单的理解和应用的主要内容,如果未能解决你的问题,请参考以下文章

深度优先及广度优先在Unity中的应用

运用Unity实现依赖注入[结合简单三层实例]

记录对依赖注入的小小理解和autofac的简单封装

转载“最简单的” Unity 光照探头总结

如何在unity3d中创建最简单的按钮

Spring Security最简单全面教程(带Demo)