Каково пространство имен для интерфейса IService?

#asp.net #servicestack

#asp.net #servicestack

Вопрос:

Я изучаю 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:

IService<T> из ServiceStack находится в ServiceStack. Пространство имен ServiceHost, которое находится в ServiceStack.Интерфейсы.dll, почему здесь класс:

https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack .Интерфейсы/ServiceHost/IService.cs

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

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

Комментарии:

1. спасибо, что указали, что мой ответ был неправильным. Я раньше не слышал о ServiceStack и не понимал, что это фреймворк — научите меня писать, прежде чем я посмотрю 🙂

2. @Tim np, кстати, это классный веб-сервис, ты должен на него взглянуть 🙂