[WCF] Restful 自定义宿主
2024-08-28 05:35:18
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
最新文章
- 计算机程序的思维逻辑 (38) - 剖析ArrayList
- Tomcat 日志清除(含扩展AccessLogValve)
- angular学习笔记(二十八-附1)-$resource中的资源的方法
- loadrunner11遇到的问题汇总及相应的解决方案(持续更新)
- 20135316王剑桥 linux第十二周课实验笔记
- JavaWeb 7 Servlet
- $where $options: &#39;g&#39;,&#39;i&#39;
- android ListView_新闻案例
- 【转】JAVA程序中Float和Double精度丢失问题
- python3--(变量)
- MYSQL数据库学习十七 日志管理
- [UOJ UNR#1]奇怪的线段树
- mysql配置文件参数详解
- mysql数据的基本操作
- Ubuntu 16.04.4 LTS + Ambari 2.6.1.5 + HDP 2.6.4.0 安装部署
- .NET BackgroundWorker的一般使用方式
- php字符串 统计个数
- 大数加法java版
- http-server
- linux通过wget直接下载jdk