问题标签 [xml-serialization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
64943 浏览

c# - 在构建过程中生成 Xml 序列化程序集

此代码产生 FileNotFoundException,但最终运行没有问题:

这是一个例外:


mscorlib.dll 中出现了“System.IO.FileNotFoundException”类型的第一次机会异常

附加信息:无法加载文件或程序集“MyAssembly.XmlSerializers,Version=1.4.3190.15950,Culture=neutral,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。


如果找不到,框架似乎会自动生成序列化程序集。 我可以使用 sgen.exe 手动生成它,从而缓解异常。

如何让 Visual Studio 自动生成 XML 序列化程序集?


更新: Generate Serialization Assembly: On 设置似乎没有做任何事情。

0 投票
2 回答
1278 浏览

visual-studio-2005 - 为什么 Visual Studio 2005 不会生成 Xml 序列化程序集?

当我将项目设置“生成序列化程序集”设置为“开”时,为什么 Visual Studio 2005 不生成序列化设置?

0 投票
12 回答
88567 浏览

php - 作为 XML 文档的 PHP 对象

获取给定 PHP 对象并将其序列化为 XML 的最佳方法是什么?我正在查看 simple_xml 并使用它来将 XML 解析为对象,但我不清楚它是如何反过来工作的。

0 投票
3 回答
1690 浏览

wcf - 控制 WCF XmlSerializer

我在 WCF 中实现了一些 REST Web 服务。当 xml 包含无效元素时,我希望这些服务返回“错误请求”。

xml 序列化由 XmlSerializer 处理。默认情况下 XmlSerializer 忽略未知元素。我知道可以挂钩 XmlSerializer.UnknownElement 并从此处理程序抛出异常,但因为这是在 WCF 中,所以我无法控制序列化。任何想法我如何实现这种行为。

0 投票
2 回答
3506 浏览

c# - 生成的代理类中不包含属性

使用 .Net 3.0 和 VS2005。

有问题的对象从 WCF 服务中使用,然后序列化回 XML 以用于旧版 API。因此,不是序列化 TestObject,而是序列化缺少 [XmlRoot] 属性的 .TestObject;但是,子元素的所有 [Xml*] 属性都在生成的代理代码中,因此它们工作得很好。所以所有子元素都可以正常工作,但封闭元素却没有,因为 [XmlRoot] 属性未包含在生成的代理代码中。包含 [XmlRoot] 属性的原始对象可以手动进行很好的序列化。

我可以让代理代码包含 [XmlRoot] 属性,以便生成的代理类也正确序列化吗? 如果我不能这样做,我怀疑我将不得不使用 [XmlType] 但这会导致轻微的破坏,需要我更改其他组件,所以我更喜欢前者。我还想避免手动编辑自动生成的代理类。

这是一些示例代码(我已将客户端和服务包含在同一个应用程序中,因为这既快速又用于测试目的。注释掉服务引用代码并在运行应用程序时添加服务引用,然后取消注释服务代码并运行.)

这是生成的 Xml。

0 投票
3 回答
1248 浏览

c# - 在 XML 序列化中包含数组索引

我有一个看起来像这样的课程

这将从 XMLSerializer 输出 XML,如下所示:

但我希望 XML 看起来像这样:

其中 index 属性等于数组中的项目位置。

我可以使用“XMLAttribute”属性向 SomeChildClass 添加一个索引属性,但是我必须记住在序列化我的对象之前循环遍历数组并设置该值。

是否有一些我可以添加的属性或其他方式为我自动生成索引属性?

0 投票
6 回答
12595 浏览

c# - 序列化对象时省略 XML 处理指令

我在 C# VS2003 / .Net 1.1 应用程序中序列化一个对象。但是,我需要在没有处理指令的情况下对其进行序列化。XmlSerializer 类输出如下内容:

有没有办法得到类似下面的东西,而不处理结果文本来删除标签?

对于那些好奇的人,我的代码看起来像这样......

0 投票
6 回答
12681 浏览

c# - 慢 SoapHttpClientProtocol 构造函数

我正在用 Microsoft Dynamics CRM 做一些实验。您通过 Web 服务与它进行交互,并且我在我的项目中添加了一个 Web 引用。Web 服务接口非常丰富,生成的“Reference.cs”大约有 90k loc。

我在控制台应用程序中使用 Web 引用。我经常改变一些东西,重新编译并运行。编译速度很快,但更新 Web 服务引用非常慢,大约需要 15-20 秒: CrmService service = new CrmService(); 分析显示所有时间都花在了 SoapHttpClientProtocol 构造函数中。

罪魁祸首显然是 XML 序列化代码(不包括在上面提到的 90k 位置中)是在运行时生成的,在被 JIT 之前。这发生在构造函数调用期间。在玩耍和尝试时,等待是相当令人沮丧的。

我尝试了 sgen.exe、ngen 和 XGenPlus 的各种组合(这需要几个小时并生成 500MB 的附加代码),但无济于事。我考虑过实现一个 Windows 服务,该服务几乎没有准备好在需要时提供的 CrmService 实例,但这似乎太过分了。

有任何想法吗?

0 投票
1 回答
3539 浏览

.net - XML 序列化,无空格

我有以下序列化方法:

但是它返回缩进的嵌套元素的xml。有没有办法在序列化程序上关闭它,还是我需要运行一个查找替换例程来摆脱它?

本质上,我想看到的是:

0 投票
3 回答
1990 浏览

c# - 在 C# 中从序列化 XML 加载对象的最佳实践

问候,

我有一个可以从文件构造的特定对象,例如:

从本质上讲,我想说“好的,现在我们刚刚反序列化了这个对象,这就是我们实际上的对象。” 有几种方法可以做到这一点,我想知道哪种方法被认为是最佳实践。我的想法是:

  • 构建一个 copy-into-me 函数,逐个字段复制对象。这是当前的实现,我很确定这是一个可怕的想法,因为每当将新成员添加到对象时,我还需要记住将其添加到“复制到我”功能中,并且没有办法可以维护.
  • 为 ConfigObj 类构建一个静态方法,该方法充当加载对象的事实上的构造函数。这听起来好多了,但不是最佳实践。

不过,我对两者中的任何一个都不完全满意。这里公认的最佳实践是什么?