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

  • 相关阅读:
    java基础部分的一些有意思的东西。
    antdvue按需加载插件babelpluginimport报错
    阿超的烦恼 javaScript篇
    .NET E F(Entity Framework)框架 DataBase First 和 Code First 简单用法。
    JQuery获得input ID相同但是type不同的方法
    gridview的删除,修改,数据绑定处理
    jgGrid数据格式
    Cannot read configuration file due to insufficient permissions
    Invoke action which type of result is JsonResult on controller from view using Ajax or geJSon
    Entity model数据库连接
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5362049.html
Copyright © 2011-2022 走看看