Unity的基础用法
2012-02-01 17:03
232 查看
Unity的基础用法
1、创建一个UnityContainer对象。
2、通过UnityContainer对象的RegisterType方法来注册对象与对象之间的关系。
3、通过UnityContainer对象的Resolve方法来获取指定对象关联的对象。
有两种方式使用RegisterType,一种是代码,类似于ontainer.RegisterType<ILogger, ConsoleLogger>();
一种是通过配置文件
通过配置文件,需要引用Unity.Configuration类库,System.configuration类库为了避免xml输入错误,可以通过XSD文件开启智能感应,有下面两种方式
方式1、在Visual Studio中选择XML选项卡,然后选择Schemas选项,在里面找到UnityConfiguration20.xsd文件,选择使用
方式2、直接在XML配置文件中输入<unity xmlns=",然后在弹出的提示中选择http://schemas.microsoft.com/practices/2010/unity
当配置过多是,可以单独建个unity.config
的配置文件中,要求类型一定要写成型如:“namespace.typename,assemblyname”的类型全名。这使得的配置文件一下子变的非常臃肿,难以维护。在Unity中提供了一种名为Automatic Type Lookup的机制来解决这一问题
1、创建一个UnityContainer对象。
2、通过UnityContainer对象的RegisterType方法来注册对象与对象之间的关系。
3、通过UnityContainer对象的Resolve方法来获取指定对象关联的对象。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Practices.Unity; using Microsoft.Practices.Unity.Configuration; namespace UnityDemo { class Program { static void Main(string[] args) { IUnityContainer container = new UnityContainer(); container.RegisterType<ILogger, ConsoleLogger>(); ILogger logger = container.Resolve<ILogger>(); logger.Log("hello world"); Console.ReadLine(); } } }
有两种方式使用RegisterType,一种是代码,类似于ontainer.RegisterType<ILogger, ConsoleLogger>();
一种是通过配置文件
通过配置文件,需要引用Unity.Configuration类库,System.configuration类库为了避免xml输入错误,可以通过XSD文件开启智能感应,有下面两种方式
方式1、在Visual Studio中选择XML选项卡,然后选择Schemas选项,在里面找到UnityConfiguration20.xsd文件,选择使用
方式2、直接在XML配置文件中输入<unity xmlns=",然后在弹出的提示中选择http://schemas.microsoft.com/practices/2010/unity
<?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"> <container> <register type="UnityDemo.ILogger,UnityDemo" mapTo="UnityDemo.FileLogger,UnityDemo"></register> </container> </unity> </configuration>
当配置过多是,可以单独建个unity.config
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Practices.Unity; using Microsoft.Practices.Unity.Configuration; using System.Configuration; namespace UnityDemo { class Program { static void Main(string[] args) { IUnityContainer container = new UnityContainer(); UnityConfigurationSection section = GetUnityConfigurationSection("unity.config"); container.LoadConfiguration(); ILogger logger = container.Resolve<ILogger>(); logger.Log("hello world"); Console.ReadLine(); } public static UnityConfigurationSection GetUnityConfigurationSection(string configFile) { var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = HttpContext.Current.Server.MapPath(configFile) }; Configuration configuration =ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); return (UnityConfigurationSection)configuration.GetSection("unity"); } } }
的配置文件中,要求类型一定要写成型如:“namespace.typename,assemblyname”的类型全名。这使得的配置文件一下子变的非常臃肿,难以维护。在Unity中提供了一种名为Automatic Type Lookup的机制来解决这一问题
<?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"> <namespace name="UnityDemo"/> <assembly name="UnityDemo"/> <container> <register type="ILogger" mapTo="FileLogger"></register> </container> </unity> </configuration>
相关文章推荐
- Unity 3D开发-C#脚本语言的一些基础用法
- Unity中3D模型动画的基础用法
- unity基础开发 1. 射线&碰撞器的原理和用法
- Unity3D 资源热更新之AssetBundle(Unity5.x)基础用法
- Apache Pig的一些基础概念及用法总结(1)
- unity 基础
- UNITY_渲染基础
- Android.mk的用法和基础
- Unity Shader入门精要学习笔记 - 第4章 学习 Shader 所需的数学基础
- 【Java基础】6、java中使用switch-case的用法及注意事项超全总结
- Unity Editor 基础篇(十一):结点编辑器基础
- Unity_NGUI基础控件_PlayTween_044
- UNITY 2D入门基础教程
- 【Unity3D基础教程】给初学者看的Unity教程(六):理解Unity的新GUI系统(UGUI)
- MEncoder的基础用法—6.10. 保持视频画面比例
- Java基础——to string 的作用和用法
- Java基础编程8-特殊流程控制语句-continue的用法
- C#控制台基础 list.where 找出大于3的数字 的用法示例
- Unity着色器基础
- HTML基础标签及用法