• [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

  • 相关阅读:
    Eclipse无法导入一些相关类的方法,出现Multiple markers at this line
    查看共享命令
    eclipse历史版本的下载地址
    MyEclipse的快捷键
    Hibernate的隔离级别
    eclipse插件下载地址
    UML类图几种关系的总结
    Oracle正则表达式函数:regexp_like、regexp_substr、regexp_instr、regexp_replace
    回滚段的学习
    Oracle 字符集的查看和修改
  • 原文地址:https://www.cnblogs.com/Areas/p/6935547.html
Copyright © 2020-2023  润新知