【发布时间】:2017-08-01 20:23:17
【问题描述】:
我正在尝试将集成库从完整的 .NET Framework 项目移植到 SOAP Web 服务到基于 .NET Standard 的项目。我已经使用 WCF Connected Service 包中的新 dotnet-svcutil.exe 创建了代理类(Reference.cs),并付出了一些努力,因为这不像旧的“添加服务参考”那么简单。 ." 非常易于使用的选项(至少对于我需要处理的复杂 wsdl/xsd 文件而言)。
无论如何,我在完整的 .NET Framework 解决方案中所做的另一件事是在我的解决方案中生成序列化代码,这样第一次 WCF 调用就不会支付动态生成序列化程序集的成本。我最初关注的是this blogpost,这太棒了。基本上指导您使用svcutil.exe /t:xmlSerializer YourAssembly.dll 将序列化代码创建到文件并与您的解决方案一起编译。
但现在,在 .NET Core / .NET Standard 端口中,我正在努力完成这项工作。
首先,新的 dotnet-svcutil.exe 不支持生成此 c# 代码以进行序列化。没有可用的 /t:xmlSerializer 选项。
其次,如果我使用 .NET Framework svcutil.exe(版本 4.6.1055.0),我会收到以下消息:
Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, Version 4.6.1055.0]
Copyright (c) Microsoft Corporation. All rights reserved.
Generating XML serializers...
Warning: There were errors loading types in an assembly loaded from 'c:\Proyectos\MTO\AmadeusWs\src\AmadeusWs\bin\Debug\netstandard1.4\AmadeusWs.dll' some types in the assembly could not be loaded and will not be available to the tool.
No se puede cargar el archivo o ensamblado 'System.ServiceModel.Primitives, Version=4.1.1.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a' ni una de sus dependencias. El sistema no puede encontrar el archivo especificado.
No se puede cargar el archivo o ensamblado 'System.ServiceModel.Primitives, Version=4.1.1.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a' ni una de sus dependencias. El sistema no puede encontrar el archivo especificado.
No se puede cargar el archivo o ensamblado 'NodaTime, Version=2.0.0.0, Culture=neutral,
Error: No se puede cargar el archivo o ensamblado 'System.ServiceModel.Primitives, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ni una de sus dependencias. El sistema no puede encontrar el archivo especificado.
在我看来,旧的 svcutil 无法动态加载 nuget 引用来生成序列化代码。
有人能指出一个在 .NET Core WCF 的新世界中生成序列化代码的过程吗?
谢谢!!德语
【问题讨论】:
标签: c# wcf .net-core .net-standard