问题标签 [ixmlserializable]
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.
.net - “此 XmlReader 不支持 ReadElementContentAsBase64 方法”
该ReadElementContentAsBase64
行抛出NotSupportedException
消息:
此 XmlReader 不支持 ReadElementContentAsBase64 方法。使用 CanReadBinaryContent 属性来确定阅读器是否实现了它。
(我检查了,CanReadBinaryContent 返回 true)
我正在使用 Microsoft .NET 3.5 框架实现。
什么可能导致这种情况?
注意:我有意将 DataContractSerializer 与 IXmlSerializable 混合使用。我意识到 DataContractSerializer 更常见的方法是让我的类成为 [DataContract]。
编辑:我现在正在使用一种解决方法:
Convert.FromBase64String(reader.ReadElementContentAsString())
不过,我想知道为什么常规方式会失败。
c# - 我应该为公共 API 使用哪种 XML 序列化方法?
我正在编写一个程序,该程序构建一个由从抽象类继承的类组成的树结构Node
。我的程序中内置了许多不同类型的节点。但是,我也希望让更高级的用户能够引用我的库并编写他们自己的Node
. 然后,当我的应用程序通过Assembly.Load()
. 因此,我的应用程序使用的所有潜在Node
类型在运行时才会知道。
此外,我希望能够将这些树与 XML 文件进行序列化和反序列化。我对 XMLSerializer、DataContractSerializer 和实现 IXmlSerializable 有一些经验。通常,我使用 DataContractSerializer,因为它通常需要比实现 IXmlSerializable 更少的代码,并且可以序列化 XmlSerializer 不能序列化的私有字段。
然而,在这个项目中,我还必须考虑其他用户将创建从我的类派生的类,并且还必须添加序列化它们所需的任何代码或属性。
考虑到这一点,我是否应该使用一种序列化机制而不是另一种?
vb.net - 从 xml 序列化中识别对象类型的动态 XmlSerializer?
有什么方法可以创建一个 XmlSerializer,它将数据类型与序列化数据一起存储,然后在反序列化时,它会自动识别序列化对象的类型并创建该类型的对象(作为对象返回)。
任何包含 XDocument、XML 文字的想法也会受到欢迎。
.net - 在 WCF XmlSchema 中指定继承
我面临一种情况,我必须在数据类型上实现 IXmlSerializable,我将通过 WCF 服务发送它。但是当我尝试在xsd中标记基类时,服务引用无法再刷新,而我写的xsd的类型为“找不到”。这是xsd:
这是C#:
我假设我需要以某种方式导入 BaseType ?
编辑:我试过
它添加了一个模式(如预期的那样),但没有任何变化!
asp.net - 帮助在此 XML 上实现 IXmlSerializable
这是 XML:
我有 DTO:
c# - xml序列化动态忽略
我正在尝试以特定格式生成 xml 文档。我想跳过根据属性值对属性进行序列化。
如果 Set 为 false,我希望不序列化整个属性,我生成的 xml 应该是
代替
有什么方法可以让我用 IXmlSerializable 或其他任何东西干净地做到这一点?
谢谢!
c# - XMLDeserialize,“反映类型时出现错误”
反映类型“MyNameSpace.configType”时出现错误。
我会减少configType
一些,希望能找到问题。除了删除表面上的冗余属性之外,我在从 xsd.exe 生成它后对其所做的唯一更改是用我自己的替换生成的类之一,这样我就可以更好地实现可选元素的序列化。
感谢您提供检查该 innerException 的提示,它可以追溯到我实现 IXmlSerializable 的类,该类现在位于其自己的文件中,如下所示:
jdehaan 写了一篇不错的文章,Proper way to implement IXmlSerializable? . 在阅读了他的代码项目后,我发现 xsd.exe 为我的原型类生成的东西破坏了我扩展实现的类IXMLSerializable
。
具体来说,属性 [XmlType(Namespace = "MyNameSpace")] 会导致错误“反映属性”。当我删除它时,我会更进一步,包含类传递了所有其他内容的反序列化,但是当涉及到代表我上面的类的成员时,它会发出“无效的 XML 标记”。
c# - 序列化对象并将其存储在另一个实现 IXmlSerializable 的对象中
我想对我的对象Exception的实例进行 XML 序列化,并将其存储在另一个对象ExceptionReport的XMLNode[] Nodes属性中。
我将如何去做,所以结果会是这样的:
到目前为止,我有以下内容,但我需要知道如何序列化这些对象并将它们存储在 ExceptionReport Nodes 数组中。
c# - 具有 IXmlSerializable 的命名空间前缀
对要使用的正确装饰器或可能需要的任何设计有点困惑。序列化实现 IXmlSerializable 的类时,有没有办法在 XmlRoot 元素中包含命名空间及其前缀?
例如类定义。
通过以下方式序列化时:
输出是
我期待的输出是:
第二个是 XmlSerializer 的输出,如果删除了类的 IXmlSerializable 实现并且取消注释 XmlElement 装饰器。我知道返回的两个 Xml 文档都是有效的,但最好尝试删除多余的命名空间声明。我认为这样的事情是可能的,因为 IXmlSerializable 旨在更好地控制您的类如何序列化/反序列化。
更新:一个非常有趣的答案建议修改 XmlWriterSettings!看起来这会通过修改 NamespaceHandling 属性来清除所有内容。但是,这仍然会导致为每个成员重写命名空间。完整的序列化代码如下:
c# - XmlSerializer 保存空文件
我在序列化我的对象时遇到问题。我实现了 IXmlSerializable 接口并初始化了 XmlSerializer 的对象(例如,序列化器)。但有时在调用 serializer.Serialize(writer, data) 之后,我的输出文件如下所示:
为什么我会有这样的行为?