.net 与WCF中的Initialize/Dispose等效
ASP.Net MVC3 在我的基本控制器中,我使用.net 与WCF中的Initialize/Dispose等效,.net,wcf,.net,Wcf,ASP.Net MVC3 在我的基本控制器中,我使用Initialize/Dispose方法来创建/Dispose我的ADO.NET连接 WCF 我可以在WCF中使用类似的功能吗?我正在使用我自己的ServiceHostFactory,如果可以使用它或自定义ServiceHost我找到了一个解决方案,那就太好了。如果有更好的,请发帖 a) 在类中实现IDispatchMessageInspector: public object AfterReceiveRequest(ref Messa
Initialize
/Dispose
方法来创建/Dispose我的ADO.NET连接
WCF
我可以在WCF中使用类似的功能吗?我正在使用我自己的
ServiceHostFactory
,如果可以使用它或自定义ServiceHost
我找到了一个解决方案,那就太好了。如果有更好的,请发帖
a) 在类中实现IDispatchMessageInspector:
public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
{
// creates a new database connection
return SessionFactory.Create();
}
public void BeforeSendReply(ref Message reply, object correlationState)
{
// closes the connection
var session = (Session) correlationState;
if (session != null)
session.Dispose();
}
b) 使用web.config或以编程方式在ServiceHost
中添加它:
foreach (ChannelDispatcher chDisp in ChannelDispatchers)
{
foreach (EndpointDispatcher epDisp in chDisp.Endpoints)
{
epDisp.DispatchRuntime.MessageInspectors.Add(myMessageInspector);
}
}