【问题标题】:How to combine multiple WSDL proxies into one class in .net core?如何在.net core 中将多个 WSDL 代理组合成一个类?
【发布时间】:2020-02-07 04:45:53
【问题描述】:

我有一些 WSDL 文件在不同的服务合同后面共享同一组类/类型。我想在服务合同代理中重用这些类型。我在网上找到的所有示例都与 .net 框架有关,而不是与 .net 核心有关。

本文档帮助我为单个 WSDL 创建代理。不为多。 https://docs.microsoft.com/en-us/dotnet/core/additional-tools/wcf-web-service-reference-guide

【问题讨论】:

    标签: c# .net-core wsdl svcutil.exe


    【解决方案1】:

    这是对我有用的解决方案。按照本文https://docs.microsoft.com/en-us/dotnet/core/additional-tools/wcf-web-service-reference-guide中提到的步骤操作。

    这将生成 ConnectedService.json 文件。编辑该文件以包含多个 WSDL 文件,如下所示。

    "ExtendedData": {
        "inputs": [
          "C:/Users/Bogus/Downloads/Bogus1.wsdl",
          "C:/Users/Bogus/Downloads/Bogus2.wsdl"
        ],
        "collectionTypes": [
          "System.Array",
          "System.Collections.Generic.Dictionary`2"
        ],
        "namespaceMappings": [
          "*, Bogus.Namespace"
        ],

    修改后,通过右键单击目标连接的服务来更新服务引用。

    【讨论】:

      【解决方案2】:

      这是基于@Ahuman 的回答。但更详细。

      第 1 步:从现有 WCF 服务为每个服务创建单个 wsdl 文件。 例如,如果您的 Web 服务地址是 http://localhost:50286/EcomService.svc,您可以从 http://localhost:50286/EcomService.svc?singleWsdl

      创建您的 wsdl 文件

      步骤 2:通过选择生成的 wsdl 文件之一,使用标准方式创建连接的服务引用。这将在 "Connected Services" -> "Your namespace name" 下创建一个 ConnectedService.json 文件

      第 3 步:编辑 ConnectedService.json 文件并在“输入”下包含其他 wsdl 文件。

        "ProviderId": "Microsoft.VisualStudio.ConnectedService.Wcf",
        "Version": "15.0.40203.910",
        "ExtendedData": {
          "inputs": [
            "../../wsdl/EcomService.wsdl",
            "../../wsdl/ProfileService.wsdl"
          ], ...
      

      缺点:每当 WCF 服务发生变化时,您必须在 ASP.NET Core 项目中手动生成 wsdl 文件,然后再更新 Connected Service。

      【讨论】:

        猜你喜欢
        • 2021-09-02
        • 1970-01-01
        • 2013-07-02
        • 2011-11-16
        • 1970-01-01
        • 2014-09-03
        • 1970-01-01
        • 2014-08-14
        相关资源
        最近更新 更多