Что такое пространство имен для интерфейса IService? - PullRequest
2 голосов
/ 18 октября 2011

Я изучаю ServiceStack и разрабатываю простую демоверсию для helloworld, но не могу найти пространство имен для интерфейса ISservice, мой код приведен ниже:

 public class Hello
{
    public string name { get; set; }
}
public class HelloResponse
{
    public string Result { get; set; }
}

public class HelloService :  **IService**<Hello>
{
    public object Execute(Hello request)
    {
        return new HelloResponse { Result = "Hello" + request.name };
    }
}

public class HelloAppHost : AppHostBase
{
    public HelloAppHost() : base("Hello Web Services", typeof(HelloService).Assembly) { }
    public override void Configure(Funq.Container container)
    {
        Routes.Add<Hello>("/hello")
            .Add<Hello>("/hello/{Name}");

    }
}

Может кто-нибудь сказать мне, какое пространство имен или DLL мне нужно добавить для IService интерфейса?

1 Ответ

2 голосов
/ 18 октября 2011

ServiceStack IService находится в пространстве имен ServiceStack.ServiceHost , которое находится в ServiceStack.Interfaces.dll , почему вот класс:

https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack.Interfaces/ServiceHost/IService.cs

Примечание. Если вы только начинаете, вероятно, лучше наследовать от ServiceStack.ServiceInterface.ServiceBase ипереопределите метод Run () , который является полезным базовым классом, который обеспечивает такие вещи, как автоматическая обработка исключений для вас.

Если вы хотите иметь возможность запускать другой код для разных HTTP-глаголов, например, GET /POST / PUT / DELETE (т.е. создание веб-сервисов REST), которые вы хотите унаследовать от RestServiceBase вместо этого и переопределить его методы OnGet / OnPost / OnPut / OnDelete.

...