在WCF中初始化/处置的等效项

时间:2011-04-26 09:19:52

标签: .net wcf

ASP.Net MVC3

在我的基本控制器中,我使用Initialize / Dispose方法来创建/部署我的ADO.NET连接。

WCF

我可以在WCF中使用类似的东西吗?我正在使用自己的ServiceHostFactory,如果可以使用它或自定义ServiceHost,那就太好了。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。如果有更好的,请发帖。

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);
            }
        }