之前的文章也都介绍了WCF相关的一些基本概念、特性和框架模型,现在我们来具体实现一个WCF契约的应用实例。让大家理论结合实现的操作一下,客户端和WCF服务通信的过程如图:
#T#客户端通过代理调用WCF服务,代理通过服务地址找到特定的服务,调用执行特定的服务方法。WCF契约(Contract)定义实现的代码包括服务契约IWCFService、操作契约OperationContract、和数据契约DataContract。具体WCF契约代码:
- Code
- //ServiceContract属性以及Indigo使用的所有其他属性均在System.ServiceModel命名空间中定义,
- //因此本例开头使用using语句来引用该命名空间。
- namespaceWCFService
- {
- //1.服务契约
- [ServiceContract(Namespace="http://www.cnblogs.com/frank_xl/")]
- publicinterfaceIWCFService
- {
- //操作契约
- [OperationContract]
- stringSayHello(stringname);
- //操作契约
- [OperationContract]
- stringSayHelloToUser(Useruser);
- }
- //2.服务类,集成接口。实现契约
- publicclassWCFService:IWCFService
- {
- //实现接口定义的方法
- publicstringSayHello(stringname)
- {
- Console.WriteLine("Hello!{0},Usingstring",name);
- return"Hello!"+name;
- }
- //实现接口定义的方法
- publicstringSayHelloToUser(Useruser)
- {
- Console.WriteLine("Hello!{0}{1},UsingDataContract",user.FirstName,user.LastName);
- return"Hello!"+user.FirstName+""+user.LastName;
- }
- }
- //3.数据契约//序列化为XML,作为元数据封装到服务里
- [DataContract]
- publicstructUser
- {
- [DataMember]
- publicstringFirstName;
- [DataMember]
- publicstringLastName;
- }
- }