设为首页 加入收藏

TOP

谈谈对.NET开源框架Castle的认识
2015-03-04 22:51:08 来源: 作者: 【 】 浏览:32
Tags:谈谈 .NET 开源 框架 Castle 认识

最近项目优化,由架构师温工手把手辅导我搭架构,能每天接受一位久经沙场架构师的亲自指导,对我是莫大的荣幸。


架构分为三个模块:AlarmEngineCoreLib模块为接口模块,AlarmEngineKernalLib模块为具体实现类模块,AlarmEngineWebApp为对外发布的WCF模块。核心模块AlarmEngineWebApp目录如下:


谈谈对.NET开源框架Castle的认识


我们在AlarmEngineWebApp模块通过Castle管理AlarmEngineCoreLib接口和AlarmEngineKernalLib实现类的关系。


配置过程如下:


1.在配置文件配置接口和实现类的关系:




?
? ?


? ?

?
?
? ?
? ? ?
? ? ?
? ? ?
? ? ?
? ? ?
? ?

?


2.在代理类(静态代理)中声明目标接口,通过一个对外的方法CreateMemoryPool控制接口的实现过程。


using System;
using AlarmEngineCoreLib;


namespace AlarmEngineWebApp
{
? ? public class MemoryPoolProxyService : IMemoryPoolProxyService
? ? {
? ? ? ? private static IMemoryPool memoryPool = null;


? ? ? ? ///


? ? ? ? /// 提供对外创建具体类的方法
? ? ? ? ///

? ? ? ? public static void CreateMemoryPool(IServiceContainer _Container)
? ? ? ? {
? ? ? ? ? ? MemoryPoolProxyService.memoryPool = _Container.GetService("AlarmEngineKernalLib.MemeryPool") as IMemoryPool;
? ? ? ? }
? ? }
}


3.在Global启动时,调用代理类的对外方法,完成接口的实现过程。


? ? ? ? ///


? ? ? ? /// 报警引擎服务容器
? ? ? ? ///

? ? ? ? public static Global _AlarmEngineApp = null;


? ? ? ? void Application_Start(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? // 在应用程序启动时运行的代码
? ? ? ? ? ? _AlarmEngineApp = new Global();
? ? ? ? ? ?
? ? ? ? ? ? MemoryPoolProxyService.CreateMemoryPool(_AlarmEngineApp);
? ? ? ? }


这样,我们通过Castle提供的容器管理接口和实现类之间的关系,典型的依赖注入容器。


Castle是针对.NET平台下的一个非常优秀的开源项目,从数据访问框架 ORM到依赖注入容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务。


Castle功能很强大,我们这个架构只是用到了冰山一角,其他功能还需继续研究。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇详细剖析Struts工作流程 下一篇Lambda表达式和表达式树

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: