如何在.NET Standard项目中“添加服务引用”

15

我想在.NET Standard项目(Visual Studio 2017)中执行“添加服务引用”操作。

为了使WCF访问成为可能,我已经在NuGet中安装了“System.ServiceModel.Http”和“System.ServiceModel.Security”。

然而,在.NET Standard项目中没有“添加服务引用”菜单项。我该如何添加服务引用?

它存在于.NET Framework项目中,但不存在于.NET Standard项目中,所以有些麻烦。


https://msdn.microsoft.com/en-us/library/bb628649.aspx - Masoud Andalibi
在解决方案资源管理器中右键单击“引用”,选择“添加服务引用”。 - Zohar Peled
1
抱歉,在那个版本中没有这样的东西,也许你可以使用这个?https://marketplace.visualstudio.com/items?itemName=WCFCORETEAM.VisualStudioWCFConnectedService - Masoud Andalibi
在 .NET Framework 项目中,您可以右键单击“引用” --> “添加服务引用”。但是,在 netstandard 项目中,这是不可能的。 - Peri
我尝试在Xamarin (.NET Standard 2.0)项目中使用“Microsoft WCF Web Service Reference Provider”插件。然而,由于错误,该插件无法正常工作。 - Peri
1
命令行工具是一个替代选项。 - Lex Li
6个回答

5

Visual Studio 2017 Community v15.9.7

解决方案资源管理器 -> 右键点击 依赖项 -> 添加 连接的服务

截图:


5
我来到这里是希望解决一个略微不同的问题...但也许可以回答你的问题;
我必须将VS2017更新到最新版本(现在是15.5.2),然后; 右键单击项目 >> 添加 >> 连接服务,然后单击“Microsoft WCF Web Service Reference Provider”。提供的对话框与Framework“添加服务引用”选项非常相似。
这是您如果要添加新类等使用的相同“添加”菜单...
此功能已于版本15.5中添加。有关更多信息,请参见github上的WCF

2

1
这些解决方案对我并没有真正起作用。我正在使用Unity 2019.1.10f和Visual Studio 2017。我发现你需要做的是将与WCF相关的dll添加到您的Unity项目中,然后生成服务客户端代理,并将其带到您的脚本中。以下是逐步说明。
  1. 创建一个新的Unity 3D项目,或打开您的项目,然后在Assets下创建一个名为Plugins的新文件夹。
  2. 导航到Unity的安装文件夹(例如C:\Program Files\Unity\Hub\Editor\2019.1.10f1)。
  3. 从安装文件夹中,导航到Editor\Data\Mono\lib\mono\2.0,在这个文件夹中,你应该能找到System.ServiceModel.dll,需要将此文件复制到步骤1中创建的Plugins文件夹中。
  4. 现在生成服务客户端代理,有几种方法可以实现,其中一种方法是使用svcutil,例如,在VS命令提示符中运行以下命令以生成客户端代理类。

    svcutil -out:c:\temp\ClientProxy.cs https://[YourWebServiceDomain]/[Service].svc

  5. 将上面的ClientProxy.cs文件复制到您的项目中,放在assets下的任意位置。

  6. 现在添加一个新的Monobehaviour脚本,例如WebClient.cs,将其添加到场景中的某个游戏对象中,以使下面的脚本运行。
  7. 打开WebClient.cs并添加连接到新代理服务的代码,如下所示的示例。
using UnityEngine;
using System.ServiceModel;
using YourClientProxyNamespace;

public class WebClient : MonoBehavior
{
  void Start()
  {
    using (ProxyClient client = new ProxyClient(
        new BasicHttpBinding(BasicHttpSecurityMode.Transport),
        new EndpointAddress("https://YourWebServiceDomain/Service.svc")))
    {
      var response = client.DesiredMethod();

      // Do whatever with the response
    }    
  }
}

0
其实你可以右键点击,选择“添加连接服务”,然后点击“Microsoft WCF Web Service Reference Provider”,它应该与“添加服务”相同。

-7

你可以通过将服务拖入 bin 目录来手动添加它。


3
你误解了。 一般来说,“添加服务引用”是按照以下方式进行的。 - Peri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接