在WCF中,有时我们希望实现AOP编程,用于权限验证、日志记录等,而Spring.NET就是一种很好的实现工具。
1、引用Spring.NET相关DLL
下载Spring.NET包,并在WCF项目中引用相关DLL:
2、添加WCF服务
在WCF项目中添加相关WCF服务:
契约代码:
using System.ServiceModel;namespace MyWcfTest{ [ServiceContract] public interface IWcfContract { [OperationContract] string GetData(string value); }}
服务实现:
namespace MyWcfTest{ public class ImplementService : IWcfContract { public string GetData(string value) { return string.Format("你输入的是:{0}", value); } }}
添加WcfServer.svc文件:
<%@ ServiceHost Language="C#" Debug="true" Service="WcfServer" Factory="Spring.ServiceModel.Activation.ServiceHostFactory" %>
注意,这里添加了Spring.NET的相关Factory,同时Service变成了我们自定义的名字,它在稍后的配置文件中定义。
3、配置Spring.NET
添加Spring.NET配置文件MyObjects.xml,内容如下:
在WCF应用程序的配置文件Web.config中添加下列配置内容:
4、注册Spring.NET上下文
新增应用程序全局设置文件Global.asax,在其中的Application_Start方法中添加下面的代码,用以注册Spring.NET上下文。
protected void Application_Start(object sender, EventArgs e) { ContextRegistry.GetContext(); }
由此配置完成,即可实现针对WCF的AOP编程。