Unity学习笔记:注册映射
Posted 雨~桐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity学习笔记:注册映射相关的知识,希望对你有一定的参考价值。
在上一篇文章中(认识Unity)中概要介绍了Unity和Ioc,本节主要介绍IoC中的注册映射,并使用代码和配置文件两种方式进行说明。
定义依赖注入相关信息
定义ILogger接口
public interface ILogger { void Info(string message); void Warning(string message); void Error(string message); void Fatal(string message); void Exception(string message, Exception ex); }
定义ServcieLog,实现ILogger
public class ServiceLog : ILogger { public void Error(string message) { Console.WriteLine("Service Error"); } public void Exception(string message, Exception ex) { Console.WriteLine("Service Exception"); } public void Fatal(string message) { Console.WriteLine("Service Fatal"); } public void Info(string message) { Console.WriteLine("Service Info"); } public void Warning(string message) { Console.WriteLine("Service Warning"); } }
通过代码进行类型映射(RegisterType)
RegisterType 包含多个支持泛型的重载,同时还包含了一一对应的非泛型重载。在此仅对其泛型重载进行阐述,非泛型重载与其对应。
RegisterType 注册类型映射可以是注册接口或基类所对应的类型,也可以直接注册类型。对于前者,在此仅给出接口或基类注册的一种,另一种直接替换即可。
RegisterType<TFrom, TTo>( )
IUnityContainer container = new UnityContainer(); container.RegisterType<ILogger, ServiceLog>();
RegisterType( Type TFrom,Type Tto)
IUnityContainer container = new UnityContainer(); container.RegisterType(typeof(ILogger), typeof(ServiceLog));
RegisterType<TFrom, TTo>(string name )
IUnityContainer container = new UnityContainer(); container.RegisterType<ILogger, ServiceLog>("log1");
RegisterType(Type TFrom,Type Tto,string name )
IUnityContainer container = new UnityContainer(); container.RegisterType(typeof(ILogger), typeof(ServiceLog),"log1");
更多重载方法,请自行查看源码。
通过配置文件映射(App.config)
配置section信息
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" />
配置Unity信息
<!--Begin Unity--> <unity xmlns="http://schemas.microsoft.com/practices/2010/unity"> <sectionExtension type="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension, Microsoft.Practices.Unity.Interception.Configuration" /> <!--容器--> <container> <register type="Unity.Aop.ILogger,Unity.Aop" mapTo="Unity.Aop.ServiceLog,Unity.Aop"></register> </container> </unity> <!--End Unity-->
通过加装配置文件信息,进行映射
var container = new UnityContainer(); UnityConfigurationSection configuration = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");
本文链接: 文章作者:雨~桐 文章出处:http://www.cnblogs.com/piscesLoveCc/ 如果您觉得阅读本文对您有帮助,请点一右下角的“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
以上是关于Unity学习笔记:注册映射的主要内容,如果未能解决你的问题,请参考以下文章