我已经弄清楚如何绕过 ServiceStack 来实现我自己的 HTTP 处理程序来提供文件下载,并且运行良好。然而,我想知道现在我在服务堆栈之外,是否可以以某种方式访问缓存。
以下是我注册自定义 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) 的访问吗?
最佳答案
是的,您可以通过单例访问 ServiceStack 的任何依赖项:
AppHostBase.Resolve<ICacheClient>();
它着眼于 ASP.NET ServiceStack AppHost 中的 IOC。
适用于所有 ServiceStack AppHost 的相同示例是:
EndpointHost.AppHost.TryResolve<ICacheClient>();
关于servicestack - 我绕过了 servicestack 来实现我自己的 IHTTPHandler,但现在我想访问缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15508077/