2012-10-10 14 views
16

撥打我的服務我該如何撥打我自己的服務?ServiceStack如何從代碼

我有一項服務使用其他服務來撰寫信息。

我想在此服務的代碼中調用其他服務。

我該怎麼做?

+0

借用聊天室這個問題,我認爲這是有用的文件爲他人。 – Tom

回答

17

有一個叫base.ResolveService<TMyService>()基本方法,它只是解決了國際奧委會的自動裝配Autowired服務並注入當前請求上下文

所以只要致電:

using (var service = base.ResolveService<MyService>()) { 
    service.Post(new MyRequest()); 
} 

您也可以撥打一個服務,只需請求DTO,它也將執行服務全局請求過濾器:

base.ExecuteRequest(new MyRequest()); 

這只是ServiceController的一個包裝這可以被稱爲靜態:

HostContext.ServiceController.Execute(new MyRequest(), base.Request) 
+0

如何從ASP.NET MVC控制器調用此函數?由於我的控制器不從'ServiceStack.ServiceInterface'繼承。 –

+1

@RosdiKasim,這裏是一個鏈接到mythz有關類似問題的答案http://stackoverflow.com/questions/10571450/should-servicestack-be-the-service-layer-in-an-mvc-application-or-should -it-call – Tom

+0

嗨,謝謝Tom!..這個鏈接真的很有幫助..感謝幫助。 –