我看过一个 c# 教程,其中讲师使用
"添加引用">
(但他使用的是Windows PC(
我正在使用 mac,并且正在努力以相同的方法生成 Web 服务的代理,它生成文件
系统。网络服务网
.Net Core 中不存在的包
我做了很多研究,我发现它不包含在 .Net Core 中,我尝试将其添加为外部但没有成功, 我读了一些文章,说有一种叫做WCF的替代品,但我也没有在Mac上找到它,所有教程或官方文档都使用Windows,我已经看到它正在使用一个.exe,这让我确信,这个地狱不存在在Mac或其他Linux系统上!
有些人可以提供帮助 ? 有什么想法 ? 替代方案 ? 捷径 ?
感谢您阅读它直到这里!
我的解决方案基于使用 .Net Core CLI,如此处的官方文档所示
- 为项目创建一个名为 HelloSvcutil 的目录,并将其设置为当前目录,如以下示例所示:
mkdir HelloSvcutil
cd HelloSvcutil
- 使用 dotnet new 命令在该目录中创建新的 C# 控制台项目,如下所示:
点网新控制台
-
在编辑器中打开 HelloSvcutil.csproj 项目文件,编辑项目元素,然后使用以下代码将 dotnet-svcutil NuGet 包添加为 CLI 工具引用:
<ItemGroup> <DotNetCliToolReference Include="dotnet-svcutil" Version="1.0.*" /> </ItemGroup>
-
使用 dotnet restore 命令还原 dotnet-svcutil 包,如下所示:
点网还原
- 使用
- svcutil 命令运行 dotnet 以生成 Web 服务引用文件,如下所示:(使用您的 Web 服务链接,在我的情况下:http://localhost.com/BanqueWS?wsdl (
dotnet svcutil http://contoso.com/SayHello.svc
生成的文件保存为 HelloSvcutil/ServiceReference1/Reference.cs。dotnet_svcutil工具还会将代理代码所需的相应 WCF 包作为包引用添加到项目中。
- 使用 dotnet restore 命令还原 WCF 包,如下所示:
点网还原
-
在编辑器中打开程序.cs文件,编辑 Main(( 方法,并将自动生成的代码替换为以下代码以调用 Web 服务:
static void Main(string[] args) { var client = new SayHelloClient(); Console.WriteLine(client.HelloAsync("dotnet-svcutil").Result); }
-
使用 dotnet run 命令运行应用程序,如下所示:
点网运行
您可以尝试安装 VS 2017 Microsoft WCF Web 服务引用提供程序。可以按照"如何使用扩展"部分生成客户端代码,然后将生成的代码复制并粘贴到 VS Code 项目中。
Dot Net 核心是关于休息的,而不是 SOAP
由于添加Microsoft WCF Web Service Reference
目前不适用于ASP.NET Core 2.1
项目,因此您可以添加新的.NET Standard
class library
针对Standard 2.0
的项目并向其添加服务引用:
- 右键单击项目
- 选择
Add -> Connected Service
- 在
Connected Services
窗口中选择Microsoft WCF Web Service Reference Provider
- 按照指南中所述指定
WSDL
详细信息 - 向
ASP.NET Core
Web 应用程序添加新的库引用(面向.NET Core 2.1
(