随笔分类 -  Mini DI容器

摘要:Mini容器支持6中生命周期类型: 1. Singleton :单利类型(缺省组件都是单利类型的生命周期,由容器进行托管的) [Test] public void SingletonLifestyleTest() { ServiceRegistry.Register<Person>(); var person = ServiceLocator.Get<IPerson>(); Assert.IsTrue(person != null); var person2 = ServiceLocator.Get<IPerson>(); Assert.IsTrue(per 阅读全文
posted @ 2010-07-06 13:54 风云 阅读(819) 评论(1) 推荐(1) 编辑
摘要:一. 环境下载到Mini 容器的官方网站下载NLite框架的二进制文件,下载并解压后就可以了。我们使用NLite框架需要用到下面的文件:NLite.dll(必要)二. 建立NLite应用程序 新建一个控制台应用程序 HostMini 添加NLite.dll 引用 添加命名空间:using NLite;using NLite.Mini; 在主函数中添加创建Mini容器的代码:var container = new Kernel(); 创建契约接口IMessageSender 创建组件EmailSender 通过服务注册表注册组件EmailSender 通过服务定位器获取契约接口 调用契约方法: 阅读全文
posted @ 2010-07-06 13:06 风云 阅读(2697) 评论(0) 推荐(4) 编辑
摘要:Mini容器主要实现了两个接口,一个是服务注册表接口,一个是服务定位器接口。那么组件的注册就要依靠服务注册表接口IServiceRegistry了。IServiceRegistry接口的定义: public interface IServiceRegistry { IServiceRegistry Register(IComponentInfo info);//通过组件元数据注册组件到容器中 IServiceRegistry RegisterInstance(string id, object instance);//注册实例 IServiceRegistry RegisterInstance 阅读全文
posted @ 2010-07-06 13:01 风云 阅读(976) 评论(0) 推荐(2) 编辑
摘要:通过上一篇文章简单学习了,环境搭建,这一篇将学习Mini容器的组件注册API的使用方法。当组件注册后,系统都会自动创建一个组件元数据类IComponentInfo 来对该组件进行绑定,系统根据组件元数据进行组件创建,依赖注入,动态代理植入,组件查找定位等,组件元数据在DI容器中的地位是非常重要的。组件元数据定义了以下几个重要的成员:组件Id属性:通过该Id可以唯一标记一个组件,服务定位器可以通过组件Id获取组件实例,当注册组件时如果没有提供组件Id,系统会自动根据组件类型的全名自动生成ServiceRegistry.Register<Person>("person&quo 阅读全文
posted @ 2010-07-06 12:18 风云 阅读(1935) 评论(2) 推荐(2) 编辑