我如何调用我自己的服务?
我有一项使用其他服务来编写信息的服务。
我想在此服务的代码中调用其他服务。
我怎样才能做到这一点?
有一个名为的基本方法base.ResolveService<TMyService>()
,它只是从 IOC 解析您的自动装配服务并注入当前请求上下文
所以只需调用:
using (var service = base.ResolveService<MyService>()) {
service.Post(new MyRequest());
}
您还可以仅使用请求 DTO 调用服务,该服务还将执行服务全局请求过滤器:
base.ExecuteRequest(new MyRequest());
这只是 ServiceController 的一个包装器,可以静态调用:
HostContext.ServiceController.Execute(new MyRequest(), base.Request)
有点晚了,因为这突然出现在搜索引擎上。关于 ServiceStack v4.5 的新方法是使用ServiceGateway。每个 SSService
现在都有一个Gateway
可以针对以下执行的属性:
var response = this.Gateway.Send(new MyRequest());