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



我已经弄清楚如何绕过ServiceStack来实现我自己的HTTP处理程序来作为下载提供文件,并且它工作得很好。然而,我想知道,现在我在服务堆栈之外,如果我能以某种方式访问缓存。

下面是我如何注册我的自定义IHTTPHandler:
 SetConfig(new EndpointHostConfig
                {
                    RawHttpHandlers = new List<Func<IHttpRequest, IHttpHandler>>()
                    {
                        req => {
                            if (req.PathInfo.Contains("filetest"))
                                return new MP4DownloadHandler();
                            return null;
                        }
                    }
                });

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

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

AppHostBase.Resolve<ICacheClient>();

查看ASP中的IOC。. NET ServiceStack AppHost。

在所有ServiceStack应用程序中都有效的相同示例是:

EndpointHost.AppHost.TryResolve<ICacheClient>();

最新更新