首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF:为.NET核心/ .NET标准预先生成可扩展标记语言序列化代码

WCF:为.NET核心/ .NET标准预先生成可扩展标记语言序列化代码
EN

Stack Overflow用户
提问于 2017-03-11 22:09:14
回答 1查看 1.1K关注 0票数 2

我正在尝试将一个集成库从一个完整的.NET框架项目移植到一个基于.NET标准的项目中。我已经实现了使用新的dotnet-svcutil.exe创建代理类(Reference.cs),它位于WCF连接的服务包中,这并不像旧的“添加服务引用...”那么简单。一个非常容易使用的选项(至少对于我需要处理的复杂的wsdl/xsd文件)。

无论如何,我在完整的.NET框架解决方案中做的另一件事是在我的解决方案中生成序列化代码,以便第一次调用不会产生动态生成序列化程序集的开销。我最初关注的是this blogpost,这太棒了。基本指导您使用svcutil.exe /t:xmlSerializer YourAssembly.dll将序列化代码创建到文件中,并将其与解决方案一起编译。

但现在,在.NET核心/ .NET标准端口中,我正在努力使其工作。

首先,新的dotnet-svcutil.exe不支持为序列化生成此c#代码。没有可用的/t:xmlSerializer选项。

其次,如果我使用.NET框架svcutil.exe (版本4.6.1055.0),我会收到以下消息:

代码语言:javascript
复制
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核心WCF的新世界中生成序列化代码的过程吗?

谢谢!!Germán

EN

回答 1

Stack Overflow用户

发布于 2019-01-15 10:26:28

老帖子,但这个答案可能会对最近发现这个主题的人有所帮助:我能够毫不费力地生成序列化代码,遵循这个指南:https://docs.microsoft.com/en-us/dotnet/core/additional-tools/dotnet-svcutil.xmlserializer-guide基本上你需要在客户端添加nuget包,并确保你的调用中有XmlSerializerFormat属性。就是这样!您将获得一个包含代码的自动生成的新程序集。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42736194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档