提问人:beerus_hakai 提问时间:8/21/2023 更新时间:8/21/2023 访问量:36
NetCore 中的 XmlSerializer.GenerateSerializer 备用
XmlSerializer.GenerateSerializer alternate in NetCore
问:
我们在代码中用于生成包含序列化程序的临时程序集。然后缓存这些组件,从而确保资源消耗较低。XmlSerializer
我们的应用程序在 .NET Framework 中,我们当前使用的代码是 -
XmlSerializer.GenerateSerializer(
types.ToArray(),
xmlMapping.ToArray(),
parameters);
我们希望将代码移动到 .NET Core,我遇到了这个答案,其中列出了 Microsoft.XmlSerializer.Generator 包的使用。
在尝试集成它时,我发现没有构造函数/方法,它将同时采用类型和 xml 映射作为参数。
我们的网络框架代码还使用 类,存在于 (这是调用的第三个参数,名为 )。CompilerParameters
System.CodeDom
parameters
有没有等效的方法可以使用网络核心包实现网络框架功能?
答:
1赞
Marc Selis
8/21/2023
#1
为此,可以使用 nuget 包。该包将安装一个 CLI 工具,该工具可以自动生成类型的序列化程序 DLL,因此不再需要调用该方法。
您需要在文件中添加额外的行,以便在构建期间自动运行 CLI 工具。Microsoft.XmlSerializer.Generator
GenerateSerializer
.csproj
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.XmlSerializer.Generator" Version="1.0.0" />
</ItemGroup>
有关详细信息,请参阅 Microsoft Learn 上的在 .NET Core 上使用 Microsoft XML 序列化程序生成器页。
评论
0赞
beerus_hakai
8/30/2023
谢谢马克。我正在尝试使构建正常工作,目前遇到了一些错误。不过,我有一个后续问题 - 我在示例应用程序中看到,在您提到的链接中,我们仍在编写以下行 - ---- ---- 由于在我们的 .NET Framework 应用程序中,我们也传递了,新的 NetCore 代码会处理这个问题吗?如果没有,那么我可能无法将其用于迁移。var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyClass));
xmlMappings
上一个:如果在我的类中声明为属性并显示为元素,则无法反序列化元素
下一个:Xml 循环引用
评论