基本知识:

[ServiceContract] Attribute 能够有以下Property 的:

CallbackContract 设置callback的类型:Duplicate指Service Host和Client之间进行双向通信
ConfigurationName 指定配置文件里某个configuration的名字
HasProtectionLevel 标示能否够处理安全消息
Name 给contract指定一个名字,在client端可见的名字,默认就是接口名字
Namespace 给消息指定一个命名空间
ProtectionLevel  

SessionMode 指同意,还是不同意,还是强制session

[OperationContract] Attribute 能够有以下Property 的:

Action 对请求设置WS-Addressing 的action
AsynchPattern 异步模式
HasProtectionLevel 消息是否加密。签名
IsInitiating 表明该函数被调用開始时是否要在server上面初始化一个session
IsOneWay 表明函数被client调用以后,client是否会等待函数返回
IsTerminating 表明该函数被调用结束时是否要在server上面关闭session
Name 设置函数的名字,在client端可见的名字。默认就是函数名字
ProtectionLevel  
ReplyAction 设置函数返回消息的SOAP action

1、 在网上看资料会看到各种给ServiceContract的Namespace、Name等属性赋值的代码。但这些Attribute 是在哪里起作用呢?

以下就让我们一起来看看,打开上篇中的解决方式WcfFirstDemo.sln

右键WCFServiceDemo项目以下的文件:Test..svc,例如以下图:

效果例如以下:

点击红框中的链接,效果例如以下:

能够看到默认Namespace是http://tempuri.org/,name与类名一致
微软官方建议:改动Service的Namespace,使其包括:公司域名+项目名+版本(如:日期表示版本)

小注:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

改动项目:WCFServiceDemo以下的ITest.cs代码例如以下:

<pre name="code" class="csharp">

namespace WCFServiceDemo
{
// 注意: 使用“重构”菜单上的“重命名”命令。能够同一时候更改代码和配置文件里的接口名“ITest”。
[ServiceContract(Namespace = "http://blog.csdn.net/jiankunking", Name = "JianKunKing",
ConfigurationName = "JianKunKingWCFService")]
public interface ITest
{
[OperationContract]
string TransferTest(int num);
}
}

右键项目WCFServiceDemo选择又一次编译,成功以后,又一次用浏览器打开ITest.svc,得到例如以下图:

此时已经改变了Service默认的Namespace了,又一次生成一下部署包,部署到服务器上,然后更新一下client端,然后又一次编译整个解决方式。会报错例如以下:

此时ServiceContract的那么已经改成JianKunKing而不是之前的Test了,例如以下图:

改动完错误后,浏览一下client端的app.config文件,例如以下,能够看到bindingConfiguration、contract、name等属性都已经改动了

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamlhbmt1bmtpbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

能够与改动之前的app.config文件对照一下:

由此看见ServiceContract的Namespace、Name等等属性。能够起到重命名的作用,隐藏掉服务端类的真实信息,客户端看到的是你想让其看到的

ServiceContract做的工作是指定service向client提供了哪些函数可供调用。

源代码:http://download.csdn.net/detail/xunzaosiyecao/8503001

WCF 新手教程二的更多相关文章

  1. WCF入门教程二[WCF应用的通信过程]

    一.概述 WCF能够建立一个跨平台的安全.可信赖.事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Service,WSE,MSMQ的并集,有一副很经典的 ...

  2. 无废话WCF入门教程二[WCF应用的通信过程]

    一.概述 WCF能够建立一个跨平台的安全.可信赖.事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Service,WSE,MSMQ的并集,有一副很经典的 ...

  3. 【转】WCF入门教程二[WCF应用的通信过程]

    一.概述 WCF能够建立一个跨平台的安全.可信赖.事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Service,WSE,MSMQ的并集,有一副很经典的 ...

  4. GitHub 新手教程 二,Windows 版 GitHub 安装

    1,下载地址: https://git-scm.com/download/ 2,信息: 3,选择安装位置: 例如:d:\soft\git 4,选择组件: 5,创建开始菜单: 6,选择Git使用的默认编 ...

  5. 无废话WCF入门教程六[一个简单的Demo]

    一.前言 前面的几个章节介绍了很多理论基础,如:什么是WCF.WCF中的A.B.C.WCF的传输模式.本文从零开始和大家一起写一个小的WCF应用程序Demo. 大多框架的学习都是从增.删.改.查开始来 ...

  6. 【转】无废话WCF系列教程

    转自:http://www.cnblogs.com/iamlilinfeng/category/415833.html     看后感:这系列的作者李林峰写得真的不错,通过它的例子,让我对WCF有了一 ...

  7. 【转】WCF入门教程六[一个简单的Demo]

    一.前言 前面的几个章节介绍了很多理论基础,如:什么是WCF.WCF中的A.B.C.WCF的传输模式.本文从零开始和大家一起写一个小的WCF应用程序Demo. 大多框架的学习都是从增.删.改.查开始来 ...

  8. 无废话WCF系列教程 -- 李林峰

    李林峰的无废话WCF入门教程 无废话WCF入门教程一[什么是WCF] 无废话WCF入门教程二[WCF应用的通信过程] 无废话WCF入门教程三[WCF的宿主] 无废话WCF入门教程四[WCF的配置文件] ...

  9. C#微信公众号开发系列教程二(新手接入指南)

    http://www.cnblogs.com/zskbll/p/4093954.html 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可 ...

随机推荐

  1. 【转】linux下a.out >outfile 2>&1重定向问题

    原文网址:http://blog.chinaunix.net/uid-25909722-id-2912890.html 转自:http://blog.chinaunix.net/space.php?u ...

  2. 配置ORACLE 客户端连接到数据库

    --================================= -- 配置ORACLE 客户端连接到数据库 --================================= Oracle ...

  3. 【Android】以BaseAdapter做适配器的ListView及其性能优化

    适配器的Java类 package com.app.adapter; import org.json.JSONArray; import org.json.JSONObject; import and ...

  4. ASP.NET中常用的字符串分割函数

    asp.net字符串分割函数用法 先来看个简单的实例 但是其数组长度却是25,而不是3.下面这种方法是先将“[111cn.net]”替换成一个特殊字符,比如$,在根据这个字符执行Split 例如下面我 ...

  5. Sql中判断“数据库"、"表"、"临时表"、"存储过程"和列”是否存在

    --判断数据库是否存在   IF EXISTS (SELECT * FROM MASTER..sysdatabases WHERE NAME = ''库名'')      PRINT ''exists ...

  6. Python相关书籍推荐

    Python基础教程(第2版 修订版) 作      者 [挪] Magnus Lie Hetland 著:司维,曾军崴,谭颖华 译 出 版 社 人民邮电出版社 出版时间 2014-06-01 版   ...

  7. spoj 839 Optimal Marks(二进制位,最小割)

    [题目链接] http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17875 [题意] 给定一个图,图的权定义为边的两端点相抑或值的 ...

  8. MATLAB / Simulink on BeagleBone Black

    转自:beagleboard@googlegroups.com邮件组 作者:kevind I have MATLAB / Simulink working with BeagleBone Black. ...

  9. linux 下载软件

    wget 软件地址 eg: 下载tomcat : wget http://apache.fayea.com/apache-mirror/tomcat/tomcat-7/v7.0.52/bin/apac ...

  10. POJ 1511 Invitation Cards (最短路spfa)

    Invitation Cards 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/J Description In the age ...