我怎么称呼我自己的服务?
我有一项使用其他服务撰写信息的服务。
我想在此服务的代码中调用其他服务。
我该怎么做?
答案 0 :(得分:17)
有一个名为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)
答案 1 :(得分:3)
稍微跳了一下,因为这出现在搜索引擎上。关于ServiceStack v4.5的新方法是使用ServiceGateway。每个SS Service
现在都有一个Gateway
属性,可以对其执行:
var response = this.Gateway.Send(new MyRequest());