使用接口创建 Windows Communication Foundation 协定

  1. 通过在“开始”菜单中右击“Visual Studio 2005”并选择“以管理员身份运行”,以管理员身份打开该程序。

  2. 创建新的控制台应用程序项目。 在“新建项目”对话框中,选中“Visual Basic”“Visual C#”,并选择“控制台应用程序”模板,并命名为 Service。 使用默认的位置。

  3. 将默认的 Service 命名空间更改为 Microsoft.ServiceModel.Samples

  4. 为项目提供对 System.ServiceModel 命名空间的引用:右击“解决方案资源管理器”中的“Service”项目,从“.NET”选项卡中的“组件名称”中选择“System.ServiceModel”,然后单击“确定”

1.为 System.ServiceModel 命名空间添加一个 using 语句

2.创建一个新的 ICalculator 接口,并将 ServiceContractAttribute 属性应用于该接口,并将 Namespace 值设置为“http://Microsoft.ServiceModel.Samples”。 此命名空间指定该服务在计算机上的路径,并构成该服务的基址部分。 请注意,在通过采用方括号表示法的属性来批注接口或类时,该属性类可以从其名称中去掉“Attribute”部分。 这样,在使用步骤 5 中的 using 语句时,ServiceContractAttribute 将变为 [System.ServiceModel.ServiceContract] 或 [ServiceContract]。

3.在接口中创建方法声明,并将 OperationContractAttribute 属性应用于每个要作为公共 WCF 协定的一部分公开的方法。

示例

下面的代码示例演示一个定义服务协定的基本接口。

Code
using System;
// Step 5: Add the using statement for the Sytem.ServiceModel namespace
using System.ServiceModel;
namespace Microsoft.ServiceModel.Samples
{
  // Step 6: Define a service contract.
  [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
  public interface ICalculator
  {
    // Step7: Create the method declaration for the contract.
    [OperationContract]
    double Add(double n1, double n2);
    [OperationContract]
    double Subtract(double n1, double n2);
    [OperationContract]
    double Multiply(double n1, double n2);
    [OperationContract]
    double Divide(double n1, double n2);
  }
}

创建接口之后,下一步就是实现接口。

请见入门代码教程第二节

转载于:https://www.cnblogs.com/tomkillua/archive/2008/09/24/1298193.html

入门代码教程第一节 如何:定义服务协定相关推荐

  1. 入门代码教程第二节 如何:实现服务协定

    如何:实现 Windows Communication Foundation 服务协定 实现 WCF 服务协定 创建一个新 CalculatorService 类,该类从用户定义的 ICalculat ...

  2. android 教程概要,Android精通教程-第一节Android入门简介

    前言 大家好,我是 Vic,今天给大家带来Android精通教程-第一节Android入门简介的概述,希望你们喜欢 每日一句 If life were predictable it would cea ...

  3. 1-2 李宏毅2021春季机器学习教程-第一节(下)-深度学习基本概念简介

    上篇文章1-1 李宏毅2021春季机器学习教程-第一节(上)-机器学习基本概念简介介绍了回归的一些知识,重点介绍了机器学习寻找函式的三个步骤.接着我们继续学习第一节Introduction的内容. 目 ...

  4. VUE入门笔记,第一节

    VUE入门笔记,第一节 一.MVVM分层思想 M:用来保存每个页面中的单独的数据 V:每个页面中的HTML结构 VM:它是M和V层的调度者,它分割了M和V层,用于处理M和V层的数据双向绑定 二.VUE ...

  5. 会说话的狗狗本电脑版_一看就会用!Fotor 电脑版 图片后期处理详解系列教程 第一节...

    Fotor 电脑版 图片后期处理详解系列教程 第一节 这节课我们先来了解一下 Fotor 电脑版的界面功能,为了能用 Fotor 电脑版修图处理打基础. 如图示,启动 Fotor 以后出面界面,有编辑 ...

  6. MySQL入门学习的第一节(SQL语句)

    MySQL入门学习的第一节(SQL语句) SQL语句

  7. matlab简单程序实例_visual basic VB.NET实例系列教程第一节(简单实用抽奖程序)...

    近期疫情原因,工作比较不忙,所以打算出一套零基础,VB.NET实例系列入门教程,实用又好玩,带大家进入VB的编程世界里,希望这套图文教程能帮到有需要的人! 第一节(简单实用抽奖程序) 内容准备:编译环 ...

  8. MATLAB进阶教程第一节(图形绘制)

    本节是matlab进阶教程的第一节,头一次看的小白请先看完我的matlab入门基础,方便消化,对那些急需图形绘制的朋友将会有很大帮助! 一.二维图形的绘制 1.1plot函数 形式:plot(X,Y, ...

  9. visual basic VB.NET实例系列教程第一节(简单实用抽奖程序)

    近期疫情原因,工作比较不忙,所以打算出一套零基础,VB.NET实例系列入门教程,实用又好玩,带大家进入VB的编程世界里,希望这套图文教程能帮到有需要的人! 第一节(简单实用抽奖程序) 内容准备:编译环 ...

最新文章

  1. 关于学习Python的一点学习总结(42->继承list)
  2. Java多线程1:进程与线程概述
  3. centos 7使用tar包安装ansible
  4. python入门经典书籍知乎_知乎问题回答 - 《Python100天从新手到大师》 - 开源书籍(oscbook.com)...
  5. 第三章 染色动力学理论单元测试
  6. linux maven自动构建,Centos7.3+Jenkins+Git+Maven 自动化构建部署项目
  7. 《C陷阱与缺陷》一第1章 词法“陷阱”1.1 =不同于==
  8. 【转载】关于网页尺寸的设置
  9. ps清理原始数据程序_ps重要插件ACR最新版 让处理照片更简便 详尽说明附上 抓紧下载吧...
  10. 如何知道对象在Python中是否具有属性
  11. lambda表达式传参
  12. macbook Intel版本安装anaconda和配置镜像源
  13. 2:算法php/go [二分查找 ;二叉树的层序遍历 ;最长无重复子数组]
  14. siege压力测试工具
  15. 图像尺寸与图像像素、分辨率的关系
  16. wordpress html5视频播放插件,WordPress插件DPlayer支持m3u8视频HTML5播放
  17. linux php启动端口,linux中如何开放指定端口
  18. 美国大学本科计算机本科排名,2017美国大学计算机排名本科
  19. OpenCV利用鼠标操作测量角度
  20. 一人点赞,N人跟风?

热门文章

  1. C#动态调用webservice
  2. 向安卓模拟器中添加文件
  3. 最大熵模型(Maximum Etropy)—— 熵,条件熵,联合熵,相对熵,互信息及其关系,最大熵模型。。...
  4. 【软件】chrome设置默认字体
  5. ::selection 制作空心字
  6. Uva 11292 The Dragon of Loowater 模拟题
  7. 虚拟机下Ubuntu没有GUI图形界面,解决方法
  8. IDEA——找不到或无法加载主类的一种暴力解决方法
  9. The requested profile “pom.xml“ could not be activated because it does not exist. 解决方法
  10. RStudio中,出现中文乱码问题的解决方案