【发布时间】:2012-09-30 10:37:16
【问题描述】:
如何调用我自己的服务?
我有一个使用其他服务来编写信息的服务。
我想在这个服务的代码中调用其他服务。
我该怎么做?
【问题讨论】:
-
从聊天室借来的这个问题,我觉得记录下来给别人有用。
标签: c# .net servicestack
如何调用我自己的服务?
我有一个使用其他服务来编写信息的服务。
我想在这个服务的代码中调用其他服务。
我该怎么做?
【问题讨论】:
标签: c# .net servicestack
有一个名为 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.ServiceInterface。
base.ExecuteRequest?
有点晚了,因为这在搜索引擎上弹出。 ServiceStack v4.5 的新方法是使用ServiceGateway。每个 SS Service 现在都有一个 Gateway 属性,可以针对:
var response = this.Gateway.Send(new MyRequest());
【讨论】: