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

时间:2023-03-09 20:29:01
对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中的数据了