Unity学习笔记1-以配置文件方式注册组件
来源:互联网 发布:淘宝一元秒杀网址 编辑:程序博客网 时间:2024/04/30 19:04
public static void ContainerCode(){ IUnityContainer container = new UnityContainer(); container.RegisterType<IClass, MyClass>(); //另一种注册方法,不过没有RegisterType<>()方法来的方便 //container.RegisterType(typeof(IClass), typeof(MyClass)); IClass classInfo = container.Resolve<IClass>(); //另一种通过container获取具体对象的方法 //IClass classInfo = container.Resolve(typeof(IClass)); classInfo.ShowInfo();}
使用Unity来管理对象与对象之间的关系可以分为以下几步:
1、创建一个UnityContainer对象。
2、通过UnityContainer对象的RegisterType方法来注册对象与对象之间的关系。
3、通过UnityContainer对象的Resolve方法来获取指定对象关联的对象。
使用配置文件来实现对象关系注册:
以上是通过代码的方式来注册对象之间的关系,但是对于一个项目来说,正式部署后,由于代码都编译成DLL,如果要修改依赖关系则修改代码并重新编译,相对来说太麻烦了,所以Unity还提供配置文件配置的方式来配置对象之间的关系,配置如下:
1 <?xml version="1.0" encoding="utf-8" ?> 2 <configuration> 3 <configSections> 4 <section name="unity" 5 type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, 6 Microsoft.Practices.Unity.Configuration"/> 7 </configSections> 8 <unity xmlns="http://schemas.microsoft.com/practices/2010/unity"> 9 <alias alias="IClass" type="UnityStudyConsole.IDemo.IClass, UnityStudyConsole" />10 <alias alias="MyClass" type="UnityStudyConsole.Demo.MyClass, UnityStudyConsole" />11 12 <container>13 <register type="IClass" name="ConfigClass" mapTo="MyClass" />14 </container>15 </unity>16 </configuration>
具体代码调用如下:
通过配置文件配置Unity信息需要有以下几个步骤:
1、在配置文件中<configSections> 配置节下unity注册。
2、在<configuration> 配置节下添加Unity配置信息。
3、在代码中读取配置信息,并将配置载入到UnityContainer中。
使用配置文件来配置对象信息虽然可以在部署的时候更改对象之间的依赖关系,但是当系统过于复杂,则就会导致配置文件的增大,所以我们需要将Unity的配置信息从App.config或web.config中分离出来,但是这样的话前面的代码中调整如下:
public static void ContainerConfiguration(){ IUnityContainer container = new UnityContainer(); //获取指定名称的配置节 UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity"); //默认方法,默认获取名称为"unity"配置节下配置信息 container.LoadConfiguration(); //获取已命名的配置节<container name="FirstClass">下的配置信息 container.LoadConfiguration("FirstClass"); //获取特定配置节下配置信息 container.LoadConfiguration(section); //获取特定配置节下已命名的配置节<container name="FirstClass">下的配置信息 container.LoadConfiguration(section, "FirstClass"); IClass classInfo = container.Resolve<IClass>("ConfigClass"); classInfo.ShowInfo();}
由于Unity配置相对来说比较复杂,一下子难以上手,而且不像企业库的其他模块可以通过配置工具进行配置,所以p&p小组为了方便通过配置文件进行Unity配置,已经在企业库5.0的安装包中内置了UnityConfiguration20.xsd,你可以在X:Program FilesMicrosoft Visual Studio X.0XmlSchemas下找到,这样就可以在配置文件中进行Unity配置时出现只能提示了,如下图:
需要注意的是,如果想出现这种提示,需要在新增的unity配置节中增加一个xmlns为。(如果没有安装过EntLib5,所以没有UnityConfiguration20.xsd,可以在下面的示例代码中找到这个xsd。)
- Unity学习笔记1-以配置文件方式注册组件
- Unity学习笔记(1) --- 一切皆组件
- Unity学习笔记(组件篇1) Unity AudioSource组件的扩展使用
- unity学习笔记1
- Unity 学习笔记 1
- Unity学习笔记——Unity基础一:unity界面、场景、游戏物体、组件等基本概念
- POX学习笔记之组件注册与事件
- 依赖注入及企业库Unity组件学习笔记
- 【Unity 3D】学习笔记三十九:控制组件
- 蓝鸥Unity入门脚本组件学习笔记
- unity学习笔记(1)-hello unity
- Unity 学习笔记(1)
- Android开发学习笔记:BroadcastReceiver简介和注册方式
- 以博客的方式备份我的学习笔记
- MyBatis学习笔记(二)---以接口方式编程
- Mybatis学习笔记二:以接口方式编程
- Smarty----注册一个函数以plugins方式
- 以配置的方式去注册aop
- 四阶巴特沃兹低通滤波器的设计与仿真
- WinForm票据套打重定位
- 谈Java反射机制
- C#数据库访问(GenericDao)
- 十步优化SQL+Server中的数据访问
- Unity学习笔记1-以配置文件方式注册组件
- 普通筛素数及线性筛素数
- 利用XSL对XML中的数据进行数据显示之一
- 关于SQL Server 2005服务无法启动,报3417错误。(附带重装SQL时解决COM+目录问题)(转帖)
- JAVA反射机制的学习
- POJ1201/ZOJ1508/HDU1384 Intervals(spfa解差分约束问题)
- SAP技術趨勢及建議
- java线程的交互
- STLport和Boost命名规则