#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, почему здесь класс:
Примечание: Если вы только начинаете, вероятно, лучше наследовать от ServiceStack.ServiceInterface.ServiceBase<T> и переопределите метод Run(), который является полезным базовым классом, который предоставляет вам такие вещи, как автоматическая обработка исключений.
Если вы хотите иметь возможность запускать разный код для разных HTTP-глаголов, например, GET / POST / PUT / DELETE (т. Е. Создавать веб-службы REST), вместо этого вы хотите унаследовать от RestServiceBase и переопределить его методы OnGet / OnPost / OnPut / OnDelete.
Комментарии:
1. спасибо, что указали, что мой ответ был неправильным. Я раньше не слышал о ServiceStack и не понимал, что это фреймворк — научите меня писать, прежде чем я посмотрю 🙂
2. @Tim np, кстати, это классный веб-сервис, ты должен на него взглянуть 🙂