关于WCF ServiceContract特性简介

开发 后端
WCF是微软对一系列产业标准定义的实现,包括服务交互、类型转换、封送(Marshaling)以及各种协议的管理,文章主要对WCF ServiceContract特性加以分析。

想要运用好一门技术就要了解它的基本的特性,比如类的特性,我们就来分析一下WCF ServiceContract特性。Windows通信基础(Windows Communication Foundation,WCF)是基于Windows平台下开发和部署服务的软件开发包(Software Development Kit,SDK)。

#T#WCF为服务提供了运行时环境(Runtime Environment),使得开发者能够将CLR类型公开为服务,又能够以CLR类型的方式使用服务。理论上讲,创建服务并不一定需要WCF,但实际上,使用WCF却可以使得创建服务的任务事半功倍。WCF是微软对一系列产业标准定义的实现,包括服务交互、类型转换、封送(Marshaling)以及各种协议的管理。正因为如此,WCF才能够提供服务之间的互操作性。WCF ServiceContract特性允许应用到接口或类上。当接口应用了Service-Contract特性后,需要定义类实现该接口。总的来讲,我们可以使用C#或VB去实现接口,服务类的代码无需修改,自然而然成为一个WCF服务:

  1. [ServiceContract]  
  2. interface IMyContract  
  3. {  
  4. [OperationContract]  
  5. string MyMethod();  
  6. }  
  7. class MyService : IMyContract  
  8. {  
  9. public string MyMethod()  
  10. {  
  11. return "Hello WCF";  
  12. }  
  13. }  

我们可以隐式或显式实现接口:

  1. class MyService : IMyContract  
  2. {  
  3. string IMyContract.MyMethod()  
  4. {  
  5. return "Hello WCF";  
  6. }  

一个单独的类通过继承和实现多个标记了WCF ServiceContract特性的接口,可以支持多个契约。

  1. [ServiceContract]  
  2. interface IMyContract  
  3. {  
  4. [OperationContract]  
  5. string MyMethod();  
  6. }  
  7. [ServiceContract]  
  8. interface IMyOtherContract  
  9. {  
  10. [OperationContract]  
  11. void MyOtherMethod();  
  12. }  
  13. class MyService : IMyContract,IMyOtherContract  
  14. {  
  15. public string MyMethod()  
  16. {...}  
  17. public void MyOtherMethod()  
  18. {...}  
  19. }  

然而,服务类还有一些实现上的约束。我们要避免使用带参构造函数,因为WCF只能使用默认构造函数。同样,虽然类可以使用内部(internal)的属性、索引器以及静态成员,但WCF客户端却无法访问它们。

责任编辑:田树 来源: 博客
相关推荐

2009-11-06 16:05:37

WCF回调契约

2010-02-22 15:27:05

WCF数据契约

2009-11-06 16:48:03

WCF简介

2009-11-05 13:21:41

WCF架构

2009-12-07 14:51:57

WCF框架

2009-11-06 11:07:52

WCF事务属性

2009-11-09 13:04:53

WCF事物处理

2009-11-09 17:55:13

WCF缓存

2009-12-07 18:33:31

WCF Service

2009-11-09 16:57:05

WCF托管特性

2009-07-27 17:38:30

WCF服务ASP.NET 3.5

2009-12-07 18:47:16

WCF流

2013-09-16 09:14:31

WebKit内核浏览器

2009-11-05 16:21:51

WCF服务

2009-11-09 13:47:22

WCF Stream操

2009-11-06 16:22:35

WCF协定

2009-11-06 13:23:27

WCF模式

2022-03-31 10:42:04

端口转发Linux

2009-07-15 17:27:30

Jython入门

2010-02-23 09:58:21

WCF客户端验证
点赞
收藏

51CTO技术栈公众号