ServiceStack入门

来源:https://github.com/ServiceStack/ServiceStack/wiki/Create-your-first-webservice

1、新建一个空asp.net 项目,用NuGet安装serviceStack包,配置Web.Config

<system.web>
  <httpHandlers>
    <add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*"/>
  </httpHandlers>
</system.web>

<!-- Required for IIS 7.0 (and above?) -->
<system.webServer>
  <validation validateIntegratedModeConfiguration="false" />
  <handlers>
    <add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" />
  </handlers>
</system.webServer>

2、实现服务

Each service in ServiceStack consists of three parts(每个服务由三部分构成):

  • Request DTO
  • Service implementation
  • Response DTO
//Request DTO输入
using
ServiceStack.ServiceHost; [Route("/hello")] [Route("/hello/{Name}")] public class Hello { public string Name { get; set; } }
//Response DTO输出
public
class HelloResponse { public string Result { get; set; } }
//实现一个服务
using
ServiceStack.ServiceInterface; public class HelloService : Service { public object Any(Hello request) { return new HelloResponse { Result = "Hello, " + request.Name }; } }

3、创建服务主机

public class HelloAppHost : AppHostBase
    {
        //告诉seviceStack你的服务程序名及如何找到你的服务程序
        public HelloAppHost() 
        : base("Hello Web Services", typeof(HelloService).Assembly) { }

        public override void Configure(Funq.Container container)
        {
            //注册你的服务所使用的任何依赖
            //container.Register<ICacheClient>(new MemoryCacheClient());
        }
    }

//同理,你可以为此而创建多个服务程序主机,以发布多服务程序

  

4、初始化并启动服务主机,开始发布服务

//Gloabal.cs文件
//注册服务
public
class Global : System.Web.HttpApplication { //Initialize your application singleton protected void Application_Start(object sender, EventArgs e) { new HelloAppHost().Init();
    //初始化其它服务主机...以实现同一asp.net程序中发布多个服务(note:个人见解) } }
原文地址:https://www.cnblogs.com/loxen/p/3314621.html