微软企业库5.0学习笔记(11)WCF和ASP.NET Web服务应用程序
2010-05-25 00:11
861 查看
在Web服务应用程序要初始化的容器和填充其依赖,需要来自应用程序类型的不同方法暴露用户接口(例如Windows Forms, WPF, and ASP.NET Web Forms)。本主题描述了ASP.NET的Web服务(ASMX)可能的解决方案和资源,帮助您实现在WCF应用程序。
ASP.NET Web服务应用程序
ASP.NET Web服务应用程序可以部分的使用主题ASP.NET Web窗体应用程序中的方法。您可以添加类HttpApplicationState的扩展方法的创建和公开容器,代码添加到应用程序的Global.asax文件中添加代码将企业库扩展加到容器中。不过,由于有在ASMX应用中没有没有UI控件,您不能像ASP.NET Web窗体应用程序描述那样使用HTTP模块。
不过,你可以调用HttpContext.Current.Application.GetContainer()扩展方法访问容器。 你可以容器的引用通过当前类的BuildUp方法填充你通过属性定义的依赖。例如,下面的代码使用依赖注入,解决实现了ImyService接口的类的实例,并使用它来计算UseDataService方法返回的值。
作为选择,你可以使用ASP.NET Web窗体应用程序中的展示的基本方法,创建并组装在Application字典对象中的容器,然后再需要的时候通过你的web方法来访问它。
WCF应用程序
在WCF中你可以使用与此主题中描述的基本方针类似的技术。然而,在WCF中没有存储的HttpApplication状态。代替的方法,你可以使用具有InstanceContextMode 的InstanceContext ,它被设为单例,并适用于所有的请求。你必须通过实现Iextension接口创建的InstanceContext的自定义扩展。
ASP.NET Web服务应用程序
ASP.NET Web服务应用程序可以部分的使用主题ASP.NET Web窗体应用程序中的方法。您可以添加类HttpApplicationState的扩展方法的创建和公开容器,代码添加到应用程序的Global.asax文件中添加代码将企业库扩展加到容器中。不过,由于有在ASMX应用中没有没有UI控件,您不能像ASP.NET Web窗体应用程序描述那样使用HTTP模块。
不过,你可以调用HttpContext.Current.Application.GetContainer()扩展方法访问容器。 你可以容器的引用通过当前类的BuildUp方法填充你通过属性定义的依赖。例如,下面的代码使用依赖注入,解决实现了ImyService接口的类的实例,并使用它来计算UseDataService方法返回的值。
using System.Web; public class MyWebService : System.Web.Services.WebService { private IMyService theService; public MyWebService() { // Pass this class through the container using the BuildUp method HttpContext.Current.Application.GetContainer().BuildUp(this); } [Dependency] public IMyService DataService { get { return theService; } set { theService = value; } } [WebMethod] public string UseDataService() { return "The value you require is " + theService.DoSomething(); } }
作为选择,你可以使用ASP.NET Web窗体应用程序中的展示的基本方法,创建并组装在Application字典对象中的容器,然后再需要的时候通过你的web方法来访问它。
WCF应用程序
在WCF中你可以使用与此主题中描述的基本方针类似的技术。然而,在WCF中没有存储的HttpApplication状态。代替的方法,你可以使用具有InstanceContextMode 的InstanceContext ,它被设为单例,并适用于所有的请求。你必须通过实现Iextension接口创建的InstanceContext的自定义扩展。
相关文章推荐
- ASP.NET 3.5核心编程学习笔记(57):针对AJAX应用程序的WCF服务
- 微软企业库5.0学习笔记(10)ASP.NET模块依赖注入
- ASP.NET 3.5核心编程学习笔记:针对AJAX应用程序的WCF服务
- 微软企业库5.0学习笔记(10)ASP.NET模块依赖注入
- (11)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- Thrift高效通讯 (完结)
- [ASP.NET学习笔记之二十八]ASP.NET中的Web服务
- WCF项目问题2-无法激活服务,因为它需要 ASP.NET 兼容性。没有未此应用程序启用 ASP.NET 兼容性。请在 web.config 中启用 ASP.NET 兼容性,或将 AspNetCompatibilityRequirementsAttribute.AspNetCompatibilityRequirementsMode 属性设置为 Required 以外的值。
- 在Asp.net应用程序中构建基于WCF Web.Api的服务
- ASP.NET 学习笔记_11 行命令处理 和 分页
- 微软企业库5.0学习笔记(九)ASP.NET WEB应用程序
- 微软企业库5.0学习笔记(八)
- Asp.net控件开发学习笔记(七)----WebControl基类
- 【译】使用微软企业库5.0进行WCF服务边界上的异常保护
- 微软企业库5.0学习笔记(一)企业库是什么?
- ASP.NET Web应用程序与ASP.NET Web服务应用程序的区别
- 微软企业库5.0学习笔记(五)引用企业库程序集及企业库的依赖
- Asp.net 2.0 - Web Parts学习笔记
- 【学习】构建WCF面向服务的应用程序系列课程笔记:(3)契约版本处理
- ASP.NET Web应用程序与ASP.NET Web服务应用程序有什么区别
- ASP.NET 学习笔记之二 建立 ASP.NET 应用程序