18

我如何调用我自己的服务?

我有一项使用其他服务来编写信息的服务。

我想在此服务的代码中调用其他服务。

我怎样才能做到这一点?

4

2 回答 2

19

有一个名为的基本方法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)
于 2012-10-10T02:38:13.183 回答
4

有点晚了,因为这突然出现在搜索引擎上。关于 ServiceStack v4.5 的新方法是使用ServiceGateway。每个 SSService现在都有一个Gateway可以针对以下执行的属性:

var response = this.Gateway.Send(new MyRequest());
于 2018-05-07T16:14:27.167 回答