微软企业库5.0学习笔记(11)WCF和ASP.NET Web服务应用程序_转载

在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方法返回的值。
 

 

view plaincopy to clipboardprint?
01.using System.Web; 
02. 
03.public class MyWebService : System.Web.Services.WebService 
04.{ 
05.  private IMyService theService; 
06. 
07.  public MyWebService() 
08.  { 
09.    // Pass this class through the container using the BuildUp method     
10.    HttpContext.Current.Application.GetContainer().BuildUp(this); 
11.  } 
12. 
13.  [Dependency] 
14.  public IMyService DataService 
15.  { 
16.    get { return theService; } 
17.    set { theService = value; } 
18.  } 
19. 
20.  [WebMethod] 
21.  public string UseDataService() 
22.  { 
23.    return "The value you require is " + theService.DoSomething(); 
24.  } 
25.} 
 

 


           作为选择,你可以使用ASP.NET Web窗体应用程序中的展示的基本方法,创建并组装在Application字典对象中的容器,然后再需要的时候通过你的web方法来访问它。
 
    WCF应用程序
 
    在WCF中你可以使用与此主题中描述的基本方针类似的技术。然而,在WCF中没有存储的HttpApplication状态。代替的方法,你可以使用具有InstanceContextMode 的InstanceContext ,它被设为单例,并适用于所有的请求。你必须通过实现Iextension接口创建的InstanceContext的自定义扩展。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sfbirp/archive/2010/05/25/5621452.aspx

转载于:https://www.cnblogs.com/ZhangHuaning/archive/2011/03/17/1986771.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值