如果您还没有这样做,请通过Creating REST Services with ServiceStack演示文稿。
1)如果你看过ServiceStack的Hello World例子就说明你需要做的唯一的步骤来创建Web服务是只提供:
//1. A Request DTO
public class Hello : IReturn<HelloResponse> {
public string Name { get; set; }
}
//2. A Response DTO
public class HelloResponse {
public string Result { get; set; }
}
//3. The web service implementation that takes a Request DTO and returns a Response DTO
public class HelloService : Service
{
public object Any(Hello request)
{
return new HelloResponse { Result = "Hello, " + request.Name };
}
}
上面的例子显示了所有需要的代码创建您好 Web服务。 您应该能够从WCF方法中重用大量现有类型和逻辑,并将其复制到Any()方法中。
2)ServiceStack的好处之一是你不需要添加一个ServiceReference,即你可以重复使用相同的通用服务客户端和你的DTOs为所有的Web服务。 e.g:
//Using JSON:
IServiceClient client = new JsonServiceClient("http://localhost/path/to/servicestack");
//Using XML:
IServiceClient client = new XmlServiceClient("http://localhost/path/to/servicestack");
var response = client.Send(new Hello { Name = "Arun" });
Console.WriteLine("Received: " + response.Result);
在/元页也有你的web服务WSDL在那里你可以创建你应该想生成客户端提供服务的链接。然而,这不是推荐的方法,因为它需要更多的摩擦,然后只使用现有的DTO。
3)ServiceStack Web服务已经是一个ASP.NET应用程序,即ServiceStack只是一组IHttpHandler,您可以将它配置为在您的Web应用程序Web中添加a Web.config mapping以在正常的ASP.NET或MVC Web应用程序内部运行。配置。
基本上,您可以将ServiceStack Web服务视为普通的ASP.NET Web应用程序,实际上Hello World Tutorial向您展示了如何通过创建空的ASP.NET应用程序来执行此操作。
您可能也有兴趣了解The Starter Templates示例项目,它向您展示了配置ServiceStack以运行在各种不同的托管选项(如ASP.NET/Windows服务/控制台应用程序等)所需的设置的最低要求。
这是一个很好的答案和伟大的框架,你们已经建立,一个查询是如果我需要从另一个Web应用程序消费它我需要添加RestIntro.ServiceModel引用,对吧?以及如何将该响应转换为json格式? –
我需要做的是如何在不依赖于ServiceModel(这里是客户类)的情况下使用此服务? –
@ArunRana您用于开发Web服务的相同Dtos可用于所有ServiceStack的序列化程序/格式,这是JsonServiceClient为您所做的。 – mythz