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

标签 servicestack

我已经弄清楚如何绕过 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/

相关文章:

c# - ServiceStack.Text 和 Twitter JSON

c# - 控制托管在 docker 中的 .NET Core 控制台应用程序的生命周期

servicestack - 使用 ServiceStack 的自定义服务 Hook

caching - ServiceStack 缓存包含对象/软件版本号

rest - ServiceStack 使用 IIS 或 Windows 服务的优势

mongodb - 使用 Redis、MongoDB、ServiceStack 进行 .NET session 状态缓存

c# - 如何正确处理并发异常并通过服务堆栈公开?

c# - Redis MSET 相当于 SET 或 LIST?

c# - ServiceStack 中是否有任何等效于 ValidateAntiForgeryToken 的东西?

c# - Xamarin 试图从 web 服务中获取用户,立即崩溃