using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.ServiceModel.Description;
namespace RestfulWCFClient
{
[ServiceContract]
public interface ICalculator
{
[OperationContract]
[WebGet(UriTemplate = "Sub?x={x}&y={y}")]
long Subtract(long x, long y);
[OperationContract]
[WebGet(UriTemplate = "Mult?x={x}&y={y}", BodyStyle = WebMessageBodyStyle.Bare)]
long Multiply(long x, long y);
}
public partial class Calculator : ICalculator
{
public long Subtract(long a, long b)
{
return a - b;
}
public long Multiply(long a, long b)
{
return a * b;
}
}
class Program
{
static void Main(string[] args)
{
ServiceHost host = new ServiceHost(typeof(Calculator), new Uri(@"http://localhost:8000/Services"));
WebHttpBinding binding = new WebHttpBinding();
binding.SendTimeout = TimeSpan.MaxValue;
ServiceEndpoint endpoint = host.AddServiceEndpoint(typeof(ICalculator), binding, @"CalculatorService");
WebHttpBehavior httpBehavior = new WebHttpBehavior();
endpoint.Behaviors.Add(httpBehavior);
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
host.Description.Behaviors.Add(smb);
host.Open();
Console.Read();
}
}
}
http://localhost:8000/Services/CalculatorService/Sub?x=2&y=1