2012-10-10 15 views
16

¿cómo puedo llamar a mi propio servicio?ServiceStack Cómo llamar a mi servicio desde el código

Tengo un servicio que utiliza otros servicios para componer información.

Deseo llamar a otros servicios dentro del código de este servicio.

¿Cómo puedo hacer eso?

+0

Respondió esta pregunta desde la sala de chat, creo que es útil para documentarla para otros. – Tom

Respuesta

17

Hay un método de base llamada base.ResolveService<TMyService>() que acaba resuelve su servicio autowired del COI e inyecta el contexto de la petición actual

Así que llame a:

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

También puede llamar a un servicio con sólo una Solicitar DTO que también ejecutará los servicios Global Request Filters:

base.ExecuteRequest(new MyRequest()); 

Esto es solo un contenedor de ServiceController que se puede llamar estáticamente:

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

¿Cómo llamo esto desde mi controlador ASP.NET MVC? Dado que mi controlador no hereda de 'ServiceStack.ServiceInterface'. –

+1

@RosdiKasim, aquí hay un enlace a la respuesta de mythz sobre una pregunta similar http://stackoverflow.com/questions/10571450/should-servicestack-be-the-service-layer-in-an-mvc-application-or-should -it-call – Tom

+0

Hola gracias Tom! .. ese enlace es realmente útil ... agradezco la ayuda. –

Cuestiones relacionadas