如果我从“裸”请求中使用.ToOptimizedResult(在此处记录),如下所示:
var svc = new MyService();
var svcResul = svc.Any(new requestDTO() {..});
svcResult的性能将从缓存中受益,还是必须从Http / Messaging / Client调用它?
注意:应用程序实际上正在运行servicestack容器。.但上面的调用者不是从服务内部调用的。
默认情况下,ServiceStack不执行任何请求缓存,您必须使用一种缓存策略选择加入缓存。
您不应该ToOptimizedResult()
在要直接调用的服务中使用,对于缓存的请求,它会返回序列化的压缩byte[]
结果,该结果不能作为C#API的类型化响应DTO进行访问。
对于要通过C#调用的缓存服务,可以改用CacheResponse属性。
注意:调用其他服务的推荐方法是使用服务网关,例如:
var result = Gateway.Send(new RequestDto());
如果要直接在服务上调用C#方法,则应使用它ResolveService
来解析自动装配的服务,并在using语句中调用该方法,例如:
using (var service = base.ResolveService<MyService>())
{
var result = service.Any(new RequestDto());
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句