我已经想出如何绕过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)的访问权限吗?
答案 0 :(得分:3)
是的,您可以通过单例访问任何ServiceStack的依赖项:
AppHostBase.Resolve<ICacheClient>();
在ASP.NET ServiceStack AppHost中查看IOC。
适用于所有ServiceStack AppHosts的相同示例是:
EndpointHost.AppHost.TryResolve<ICacheClient>();