在Asp.net应用程序中构建基于WCF Web.Api的服务
2011-09-21 14:44
671 查看
在VS中打开PackageManageConsole下,输入:
///<summary>
///asimpleContactentity
///</summary>
publicclassContact
{
///<summary>
///Name
///</summary>
publicstringName{get;set;}
}
[ServiceContract]
publicinterfaceIContactsResource
{
[WebGet(UriTemplate="")]
List<Contact>Get();
}
///<summary>
///Demoforhostaweb.apiinasp.netapplication
///</summary>
///<remarks>authorPetterLiuhttp://www.cnblogs.com/wintersun</remarks>
publicclassContactsResource:IContactsResource
{
///<summary>
///GetlistofContacts
///</summary>
///<returns>listofcontacts</returns>
publicList<Contact>Get()
{
returnnewList<Contact>()
{
newContact(){Name="Peter"}
};
}
}
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
代码很简单.然后在Global.asax中Application_Start增加如下代码:
voidApplication_Start(objectsender,EventArgse)
{
RouteTable.Routes.MapServiceRoute<ContactsResource>("contacts");
}
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
接着打开浏览器运行吧,访问
<?xmlversion="1.0"encoding="utf-8"?>
<ArrayOfContactxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Contact>
<Name>Peter</Name>
</Contact>
</ArrayOfContact>
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
让我们再用UnitTest来验证一下,引用HttpClient库.
[TestMethod]
publicvoidTestGetAction()
{
//arrange
varclient=newHttpClient();
//act
varresp=client.Get("http://localhost:7287/contacts");
//assert
Assert.IsTrue(resp.IsSuccessStatusCode);
varcontacts=resp.Content.ReadAs<List<Contact>>();
Assert.IsNotNull(contacts);
Assert.AreEqual("Peter",contacts.FirstOrDefault().Name);
}
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
OK,Pass.一切就是那么简单
希望这篇POST对您开发WCF有帮助.
您可以感兴趣的文章:
作者:
出处:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-
相关文章推荐
- 构建基于OSGi.NET的ASP.NET Web插件应用程序(上)
- WCF项目问题2-无法激活服务,因为它需要 ASP.NET 兼容性。没有未此应用程序启用 ASP.NET 兼容性。请在 web.config 中启用 ASP.NET 兼容性,或将 AspNetCompatibilityRequirementsAttribute.AspNetCompatibilityRequirementsMode 属性设置为 Required 以外的值。
- 为Asp.net应用程序设置构建Web服务
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【九】——API变了,客户端怎么办?
- 为Asp.net应用程序设置构建Web服务
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【九】——API变了,客户端怎么办?
- ASP.NET WEB API构建基于REST风格
- 微软企业库5.0学习笔记(11)WCF和ASP.NET Web服务应用程序
- 用 JAX-RPC 构建 RPC 服务和客户机(使用 Java API 构建基于 RPC 的 Web 服务)
- ASP.NET Web应用程序与ASP.NET Web服务应用程序的区别
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【五】——在Web Api中实现Http方法(Put,Post,Delete)
- 使用ASP.NET 构建 Web 应用程序快速入门-8小时的免费培训视频
- [ZooKeeper.net] 1 模仿dubbo实现一个简要的http服务的注册 基于webapi
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【外传】——Attribute Routing
- 在docker中运行ASP.NET Core Web API应用程序
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【开篇】【持续更新中。。。】
- ASP.NET Core Web API下事件驱动型架构的实现(三):基于RabbitMQ的事件总线
- 基于ASP.NET MVC框架开发Web论坛应用程序
- 通过使用客户端证书调用 Web 服务以便在 ASP.NET Web 应用程序中进行身份验证
- Docker容器环境下ASP.NET Core Web API应用程序的调试