zoukankan      html  css  js  c++  java
  • WCF 新手教程二

    基本知识:

    [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

  • 相关阅读:
    缺省参数的注意事项
    可变和不可变类型
    Python之旅
    BBS项目 个人界面分类,文章,模板的使用详解
    Django 模板
    BBS项目 部分主界面and个人博客界面代码详解
    BBS项目 注册界面and部分首页代码详解
    BBS项目 备忘时时更新
    BBS项目 登录界面代码详解
    BBS项目 基本表关系
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5362049.html
Copyright © 2011-2022 走看看