我绕过servicestack来实现我自己的IHTTPHandler,但现在我想要访问缓存

时间:2013-03-19 18:51:45

标签: servicestack

我已经想出如何绕过ServiceStack来实现我自己的HTTP Handler来提供文件作为下载,并且它运行良好。但是,我想知道,如果我可以以某种方式访问​​缓存,那么我现在已经在servicestack之外了。

以下是我注册自定义IHTTPHandler的方法:

 SetConfig(new EndpointHostConfig
                {
                    RawHttpHandlers = new List<Func<IHttpRequest, IHttpHandler>>()
                    {
                        req => {
                            if (req.PathInfo.Contains("filetest"))
                                return new MP4DownloadHandler();
                            return null;
                        }
                    }
                });

我可以从MP4DownloadHandler类的ProcessRequest成员获得对ServiceStack缓存(ICacheClient)的访问权限吗?

1 个答案:

答案 0 :(得分:3)

是的,您可以通过单例访问任何ServiceStack的依赖项:

AppHostBase.Resolve<ICacheClient>();

在ASP.NET ServiceStack AppHost中查看IOC。

适用于所有ServiceStack AppHosts的相同示例是:

EndpointHost.AppHost.TryResolve<ICacheClient>();