Quick Start - WCF 4.0 RESTful Service Setup

1.建立一个 Asp.net Website / WebApplication 

2. 引用 System.ServiceModel 系列的dll

3. 添加以下的类和接口

View Code
    [ServiceContract]// define a service contract
interface IPersonService
{
[OperationContract]
Person GetPerson(
string id);

[OperationContract]
Person InsertPerson(Person person);

[OperationContract]
Person UpdatePerson(
string id, Person person);

[OperationContract]
void DeletePerson(string id);
}

[AspNetCompatibilityRequirements(RequirementsMode
= AspNetCompatibilityRequirementsMode.Allowed)] // enablt asp.net compatibility , then wcf service can work in asp.net
public class PersonService : IPersonService
{
[WebGet(UriTemplate
= "Person({id})")]
public Person GetPerson(string id)
{
return new Person();
}

[WebInvoke(UriTemplate
= "Person", Method = "POST")]
public Person InsertPerson(Person person)
{
return new Person();
}

[WebInvoke(UriTemplate
= "Person({id})", Method = "PUT")]
public Person UpdatePerson(string id, Person person)
{
return new Person();
}

[WebInvoke(UriTemplate
= "Person({id})", Method = "DELETE")]
public void DeletePerson(string id)
{
}
}

[DataContract]
// define a data contract
public class Person
{
[DataMember]
public string Name { get; set; }
[DataMember]
public int Age { get; set; }

}

4.配置以下内容在web.config

  <system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>

5.注册一个好看点的地址在global.asax

protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Add(
new ServiceRoute("PersonService", new WebServiceHostFactory(), typeof(PersonService)));
}

如果是MVC Project 那么注册代码如下

routes.Add(new ServiceRoute("Person", new WebServiceHostFactory(), typeof(PersonService)));

好了 一切ok。。。

wcf4.0简化了很多配置。。。。

帮助界面如下所示 (正式的根地址还是: http://localhost:/35034/Personservice ) 

单个方法的帮助信息就更详细了

posted on 2011-07-23 11:47  听说读写  阅读(403)  评论(0编辑  收藏  举报

导航