C#实现一个简单的 Restful Service

来源:互联网 发布:mac自动播放照片 编辑:程序博客网 时间:2024/05/18 00:03

原文来自:http://www.cnblogs.com/mingmingruyuedlut/p/3740975.html

用 C#  实现一个简单的 Restful Service 供外部调用,大体总结为4点:

  • The service contract (the methods it offers).
  • How do you know which one to access from the URL given (URL Routing).
  • The implementation of the service.
  • How you will host the service.

 

详细的基本步骤如下所示: 

1):工程结构(Class Library Project)

 

2): IRestDemoService.cs

复制代码
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceModel;using System.ServiceModel.Web;namespace EricSunRestService{    [ServiceContract(Name = "RestDemoServices")]    public interface IRestDemoServices    {        [OperationContract]        [WebGet(UriTemplate = Routing.GetClientRoute, BodyStyle = WebMessageBodyStyle.Bare)]        string GetClientNameById(string Id);    }    public static class Routing    {        public const string GetClientRoute = "/Client/{id}";    }}
复制代码

 

3):RestDemoService.cs

复制代码
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceModel;using System.ServiceModel.Activation;namespace EricSunRestService{    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Single, IncludeExceptionDetailInFaults = true)]    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]    public class RestDemoServices : IRestDemoServices    {        public string GetClientNameById(string Id)        {            string ReturnString = "HaHa id is: " + Id;            return ReturnString;        }    }}
复制代码

 

4):Host Service 工程结构 (Console Application)

 

5):Program.cs

复制代码
using System;using System.Collections.Generic;using System.Linq;using System.Text;using EricSunRestService;using System.ServiceModel.Web;namespace EricSunHostService{    class Program    {        static void Main(string[] args)        {            RestDemoServices demoServices = new RestDemoServices();            WebServiceHost _serviceHost = new WebServiceHost(demoServices, new Uri("http://localhost:8000/DemoService"));            _serviceHost.Open();            Console.ReadKey();            _serviceHost.Close();        }    }}
复制代码

 

6):运行Host程序,在浏览器中输入对应Service的Url

 

1 0