【问题标题】:ServiceStack - IOC DisposalServiceStack - 国际奥委会处置
【发布时间】:2014-02-19 17:51:02
【问题描述】:

我正在使用 ServiceStack 的 funq,我试图在请求结束时保留 IOC 被处理的位置。特别是对于范围 = ReuseScope.Request 的条目。

我看的是RestHandler的ProcessRequest方法,这个方法是被Asp.NET直接调用的,它的结尾是这样的:

(...)    
        if (doJsonp && !(response is CompressedResult))
                httpRes.WriteToResponse(httpReq, response, (callback + "(").ToUtf8Bytes(), ")".ToUtf8Bytes());
            else
                httpRes.WriteToResponse(httpReq, response);
        }
        catch (Exception ex)
        {
            if (!EndpointHost.Config.WriteErrorsToResponse) throw;
            HandleException(httpReq, httpRes, operationName, ex);
        }
    }

我没有看到对 Funq 处置的提及。我在这里想念什么? 谢谢

【问题讨论】:

    标签: servicestack ioc-container funq


    【解决方案1】:

    Container Scope 与 Singleton Scope 相同,仅在 AppHost is disposed 时被释放。

    RequestScoped 资源被配置在ServiceStackHost.OnEndRequest()

    您可以在 AppHost 中覆盖 AppHost.Release(object instance),以便在 ServiceStack 释放资源时收到通知。

    【讨论】:

    • 对不起我的错误。这是 ReuseScope.Request 我正在寻找电话。这是在哪里触发的?谢谢
    • 在 ServiceStackHost.OnEndRequest() 中更新了答案
    • @Blitzkrieg 不,这不可能,调用通常源自 EndRequest() 扩展方法,该方法从每个已知的退出点调用。
    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    相关资源
    最近更新 更多