首页 > 代码库 > [WCF] Restful 自定义宿主

[WCF] Restful 自定义宿主

IPersonRetriever:

/* * 由SharpDevelop创建。 * 用户: Administrator * 日期: 2017/6/2 * 时间: 22:13 *  * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件 */using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.ServiceModel;using System.ServiceModel.Web;using System.Text;namespace WcfRESTful{	/// <summary>	/// Description of IPersonRetriever.	/// </summary>	[ServiceContract]	public interface IPersonRetriever	{		[OperationContract]		[WebInvokeAttribute(UriTemplate = "Persons",Method="POST", ResponseFormat = WebMessageFormat.Json)]		Person GetPerson();	}		[DataContract]	public class Person	{		[DataMember]		public string Name { get; set; }		[DataMember]		public int Age { get; set; }		[DataMember]		public string Birthday { get; set; }	}}

 

 PersonRetriever:

/* * 由SharpDevelop创建。 * 用户: Administrator * 日期: 2017/6/2 * 时间: 22:15 *  * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件 */using System;using System.ServiceModel.Web;namespace WcfRESTful{	/// <summary>	/// Description of PersonRetriever.	/// </summary>	public class PersonRetriever: IPersonRetriever	{		public Person GetPerson()        {            WebOperationContext.Current.OutgoingResponse.ContentType = "text/plain";            return new Person { Name = "Test", Age = 22, Birthday = DateTime.Now.ToString("yyyy-mm-dd HH:MM:ss:ffff") };        }    }}

 Program :

 

/* * 由SharpDevelop创建。 * 用户: Administrator * 日期: 2017/6/2 * 时间: 22:19 *  * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件 */using System;using System.ServiceModel;using System.ServiceModel.Description;namespace WcfRESTful{	class Program	{		public static void Main(string[] args)		{			Console.WriteLine("Hello World!");						// TODO: Implement Functionality Here						Uri baseAddress = new Uri("http://127.0.0.1:9998/PersonRetriever");			using (ServiceHost host = new ServiceHost(typeof(PersonRetriever), baseAddress)) {				WebHttpBinding binding = new WebHttpBinding();				ServiceEndpoint endpoint = host.AddServiceEndpoint(typeof(IPersonRetriever), binding, baseAddress);				WebHttpBehavior httpBehavior = new WebHttpBehavior();				endpoint.Behaviors.Add(httpBehavior);				host.Opened += delegate {					Console.WriteLine("Hosted successfully.");				};				host.Open();				Console.ReadLine();			}						Console.Write("Press any key to continue . . . ");			Console.ReadKey(true);		}	}}

 

 截图 :

技术分享

 

 

源码: http://files.cnblogs.com/files/Areas/WcfRESTful.zip

 

[WCF] Restful 自定义宿主