快速业务通道

使用可扩展对象模式扩展HttpApplication

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20

概述

HttpApplication对象对于做ASP.NET开发的朋友,我想没有人不熟悉它。在ASP.NET开发中,经常避免 不了要在HttpApplication中执行一些操作,如使用了ASP.NET MVC框架,就会在Application_Start 事件 中避免不了这样的路由规则配置代码:

protected void Application_Start()
{
   RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

   RouteTable.Routes.MapRoute(
     "Default",                       // Route name
     "{controller}/{action}/{id}",              // URL with parameters
     new { controller = "Home", action = "Index", id = "" } // Parameter  defaults
   );
}

如果仅仅是这一条,看起来倒不觉的有什么问题,但如果同时在应用程序中使用了工作流,又避免不 了在Application_Start出现启动工作流运行时的代码:

protected void Application_Start()
{
   // 注册路由规则
   RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
   RouteTable.Routes.MapRoute(
     "Default",                       // Route name
     "{controller}/{action}/{id}",              // URL with parameters
     new { controller = "Home", action = "Index", id = "" } // Parameter  defaults
   );

   // 启动工作流
   WorkflowRuntime workflowRuntime = new WorkflowRuntime ("workflowServicesConfig");
   ExternalDataExchangeService externalDataExchangeService = new  ExternalDataExchangeService();
   workflowRuntime.AddService(externalDataExchangeService);
   workflowRuntime.StartRuntime();
}

试想一下,现在我们仅仅是有了ASP.NET MVC路由规则的配置、WF运行时的启动,如果在应用程序中使 用某种DI框架,如微软的Unity,是不是又避免不了要出现这样的容器初始化代码呢?

protected void Application_Start()
{
   // 注册路由规则
   RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
   RouteTable.Routes.MapRoute(
     "Default",                       // Route name
     "{controller}/{action}/{id}",              // URL with parameters
     new { controller = "Home", action = "Index", id = "" } // Parameter  defaults
   );

   // 启动工作流
   WorkflowRuntime workflowRuntime = new WorkflowRuntime ("workflowServicesConfig");
   ExternalDataExchangeService externalDataExchangeService = new  ExternalDataExchangeService();
   workflowRuntime.AddService(externalDataExchangeService);
   workflowRuntime.StartRuntime();

   // 初始化DI容器
   IContainerContext repositoryContainer = ContainerManager.GetContainer ("repositoryContainer");
   repositoryContainer.Initialize();
}

再看看Application_Start事件中的代码,有ASP.NET MVC的工作,有WF的工作,也有Unity的工作,不 知道将来还会有什么?这些原本互相之间没有任何联系的代码,现在却同时堆

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号