WCF 入门教程二

简介: 基本知识:[ServiceContract] Attribute 可以有以下Property 的:CallbackContract 设置callback的类型:Duplicate指Service Host和Client之间进行双向通信ConfigurationName 指定配置文件中某个configuration的名字HasProtectionLevel 标示是否可以处理安全消息Name

基本知识:

[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,使其包含:公司域名+项目名+版本号(如:日期表示版本号)

小注:

修改项目: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等属性都已经修改了


可以与修改之前的app.config文件对比一下:


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

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

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

相关文章
|
Web App开发 网络协议 .NET
WCF 入门教程二
作者:jiankunking 出处:http://blog.csdn.net/jiankunking 基本知识: [ServiceContract] Attribute 可以有以下Property 的: CallbackContract 设置callback的类型:Duplicate指Service Host和Client之间进行双向通信ConfigurationName 指定配置文件中某个
1249 0
|
XML 测试技术 C#
WCF 入门教程一(动手新建第一个WCF程序并部署)
作者:jiankunking 出处:http://blog.csdn.net/jiankunking WCF的相关概念信息就不在此赘述了,网上一搜一大把。 现在让我们动手搭建我们的第一个wcf程序吧,具体流程如下: 1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序。 2、建立完成后如下图所示: 3、删除系统生成的两个文件IService1.cs与Servi
1185 0
|
XML 测试技术 C#
WCF 入门教程一(动手新建第一个WCF程序并部署)
WCF的相关概念信息就不在此赘述了,网上一搜一大把。 现在让我们动手搭建我们的第一个wcf程序吧,具体流程如下: 1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序。 2、建立完成后如下图所示: 3、删除系统生成的两个文件IService1.cs与Service1.svc(或者自己重命名,在系统生成的基础文件中进行编码,此处感觉重命名麻烦,于是
5251 0
|
10月前
|
前端开发
WCF更新服务引用报错的原因之一
WCF更新服务引用报错的原因之一
|
9月前
|
C# 数据安全/隐私保护
c#如何创建WCF服务到发布(SqlServer版已经验证)
c#如何创建WCF服务到发布(SqlServer版已经验证)
38 0
|
9月前
|
安全 数据库连接 数据库
WCF服务创建到发布(SqlServer版)
在本示例开始之前,让我们先来了解一下什么是wcf? wcf有哪些特点? wcf是一个面向服务编程的综合分层架构。该架构的项层为服务模型层。 使用户用最少的时间和精力建立自己的软件产品和外界通信的模型。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案。且能与已有系统兼容写作。 简单概括就是:一组数据通信的应用程序开发接口。
60 0
|
10月前
Visual Studio 2022 创建 WCF服务 找不到
Visual Studio 2022 创建 WCF服务 找不到

相关实验场景

更多