2012-10-10 5 views
16

自分のサービスを呼び出すにはどうすればよいですか?ServiceStackコードからサービスを呼び出す方法

私は他のサービスを使って情報を構成するサービスを持っています。

このサービスのコード内で他のサービスに電話したいと思います。

どうすればいいですか?

+0

この質問をチャットルームから借りて、私は他の人のためにそれを文書化すると便利だと思います。 – Tom

答えて

17

だけで、現在の要求コンテキストをIOCからのごautowiredサービスを解決し、注入base.ResolveService<TMyService>()と呼ばれる基本メソッドがあり

だから呼び出す:

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さんに感謝します。そのリンクは本当に役に立ちます。 –

関連する問題