创建一个新的类库项目并将其命名为“RESTService.Lib”。添加对“System.ServiceModel”和“System.ServiceModel.Web”的引用。创建一个名为 IRESTDemoServices 的接口类,并添加表示所提供服务的方法的定义。我们的界面将只提供如下一项服务:
public interface IRESTDemoServices
{
string GetClientNameById(string Id);
}
为了告诉框架将此接口视为服务,您需要将其装饰如下:
[ServiceContract(Name = "RESTDemoServices")]
public interface IRESTDemoServices
{
[OperationContract]
string GetClientNameById(int Id);
}
定义用于访问服务的 URL(URL 路由):
public static class Routing
{
public const string GetClientRoute = "/Client/{id}";
}
URL Route 到接口中方法的连接是通过在接口上装饰一个属性来实现的,如下所示:
[ServiceContract(Name = "RESTDemoServices")]
public interface IRESTDemoServices
{
[OperationContract]
[WebGet(UriTemplate = Routing.GetClientRoute, BodyStyle = WebMessageBodyStyle.Bare)]
string GetClientNameById(string Id);
}
现在实现服务:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
ConcurrencyMode = ConcurrencyMode.Single, IncludeExceptionDetailInFaults = true)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class RestDemoServices:IRESTDemoServices
{
public string GetClientNameById(string Id)
{
Random r = new Random();
string ReturnString="";
int Idnum=Convert.ToInt32(id);
for (int i = 0; i < Idnum; i++)
ReturnString += char.ConvertFromUtf32(r.Next(65, 85));
return ReturnString;
}
}
然后您必须将其托管在 IIS 中或使用自定义托管(控制台、Windows 服务等)。
看这里:http://www.progware.org/blog/post/a-simple-rest-service-in-c.aspx
希望有帮助!