ServiceStack如何从代码中调用我的服务

时间:2012-10-10 02:36:59

标签: c# .net servicestack

我怎么称呼我自己的服务?

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

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

我该怎么做?

2 个答案:

答案 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());