文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

WCF契约查询ConsoleApplication应用实例分析

2023-06-17 20:32

关注

这篇文章主要介绍“WCF契约查询ConsoleApplication应用实例分析”,在日常操作中,相信很多人在WCF契约查询ConsoleApplication应用实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”WCF契约查询ConsoleApplication应用实例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

当我们拿到一个服务地址的时候该如何知道这个服务所提供的服务呢?如果是您自己开发的Service,这一点或许不需要兴师动众,但是如果是别人开发的服务,那么了解服务中的Endpoint将显得格外重要,本文将利用对[WCF]继承中所构建的服务代码进行分析。

熟悉Web Service开发的程序员对添加服务引用应该并不陌生。在创建某个服务的客户端程序时,并不需要从头开始编写客户端的底层通信和交互代码,可以通过输入服务地址来添加服务来让Visual Studio生成客户端代理,这样访问服务就像访问本地组件一样,而不需要去关心通信的细节。如果创建的客户端程序项目和服务程序项目处在同一个解决方案里(很多开发者在开发服务时,也会同步开发客户端程序),还可以通过Visual Studio来帮助我们“发现(Discovery)”服务,并添加服务引用。

打开其程序代码添加一个WCF契约查询ConsoleApplication应用程序,新建程序,WCF契约查询代码如下:

  1. using System;   

  2. using System.ServiceModel.Description;   

  3. namespace ContractQueriesClient   

  4. {   

  5. class Program   

  6. {   

  7. static void Main(string[] args)   

  8. {   

  9. // ?WSDL   

  10. //string mexAddress = "http://localhost:8080/ScientificCalculatorService?WSDL";   

  11. //MetadataExchangeClient MEXClient = new MetadataExchangeClient(new Uri(mexAddress), MetadataExchangeClientMode.HttpGet);   

  12. // /MEX string mexAddress = "http://localhost:8080/ScientificCalculatorService/mex";   

  13. MetadataExchangeClient MEXClient = new MetadataExchangeClient(new Uri(mexAddress), MetadataExchangeClientMode.MetadataExchange);   

  14. MetadataSet metadata = MEXClient.GetMetadata();   

  15. MetadataImporter importer = new WsdlImporter(metadata);   

  16. ServiceEndpointCollection endpoints = importer.ImportAllEndpoints();   

  17. int endpointCounter = 0;   

  18. foreach (ServiceEndpoint endpoint in endpoints)   

  19. { Console.WriteLine("endpoints[{0}].Name = {1}", endpointCounter, endpoint.Name);   

  20. Console.WriteLine("endpoints[{0}].Contract.Namespace = {1}", endpointCounter, endpoint.Contract.Namespace);   

  21. Console.WriteLine("endpoints[{0}].Contract.Name = {1}", endpointCounter, endpoint.Contract.Name); endpointCounter++; } 
    System.Collections.ObjectModel.Collection<ContractDescription> contracts = importer.ImportAllContracts();   

  22. int contractCounter = 0; foreach (ContractDescription contract in contracts)   

  23. { Console.WriteLine("contracts[{0}].Namespace = {1}", contractCounter, contract.Namespace);   

  24. Console.WriteLine("contracts[{0}].Name = {1}", contractCounter, contract.Name); contractCounter++; } } } } 

这个项目我们不需要Add ServiceReference,因为我们只需分析那个“地址”所提供给我们的究竟是什么样的服务,而不是要去使用服务中的WCF契约查询

到此,关于“WCF契约查询ConsoleApplication应用实例分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯