问题标签 [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.

0 投票
0 回答
127 浏览

c# - 注释 IXmlSerializable

我创建了一个类型,它实现了 IXmlSerializable 并使用 XmlSchemaProviderAttribute 来定义其架构,以便在 WCF 服务中使用。据我所知,所有这些都根据“最佳实践”/MSDN。

长话短说,出于各种原因(不能使用 DataContract),我必须使用 IXmlSerializable,并且我希望通过使用 xs:annotation 和 xs:documentation 在 XSD 模式中记录我的类型。似乎除了类型本身之外的所有内容都可以进行注释,以某种方式从模式中剥离了类型注释。

谁能解释为什么,我的代码有什么问题或可行的解决方案?

使用下面的类作为操作的参数/返回值,或作为 DataContract 的一部分,正确地将 ComplexType 添加到模式中,除了类型注释之外的所有内容。

具体来说,这一行没有任何效果(尽管在 return 语句中有一个断点,但我可以验证注解确实存在,看起来是正确的):

完整样本

0 投票
2 回答
1549 浏览

c# - 如何使用 XML 可序列化命名空间前缀?

这是 XML

这是模型

如何在模型中添加 NS1 命名空间前缀?请给我提意见。非常感谢。

0 投票
1 回答
55 浏览

.net - XmlReader - 只读取“子 xpath 轴”

您好,我的 xml 具有相同的嵌套元素。它是递归的(快乐!)

像这样:

一旦XmlReader定位在 上MyRoot,我怎么能只循环通过MyRoot(在这种情况下,<Record Name="Header" ><Record Name="Body" MaxOccurs="0">)的直接子级。我正在以递归方式将这些节点的 xml 读取委托给另一个类。

在考虑重复的问题之前,请确保 OP 没有询问孙子或其他一些节点集,除了 xpath 的 xpath 轴children。我找不到这个问题的完全匹配,而且XmlReader似乎一直想先深入。

我想做的是交出XmlReader并让正在使用子 xml 的子对象将它交还给我,指向它需要获取下一个孩子的位置。那会很甜蜜。

0 投票
0 回答
215 浏览

asp.net-web-api2 - 为什么我的对象不会序列化?

我有一堂课。它实现了 IXmlSerializable。我无法让 Web API 2 对其进行序列化。

这是我的课:

这是回应:

我试过了[DataContract]。这改变了“类型'MyNamespace.MyType'不能是 IXmlSerializable 并且具有 DataContractAttribute 属性。” 我尝试使用[XmlSchemaProvider("Method", IsAny = true)],Method返回 null,这又给了我原来的错误。DataContractSerializer应该能够序列化IXmlSerializables. 是什么赋予了?

PS:WriteXml 根本没有被调用。

0 投票
0 回答
117 浏览

wcf - 在 WCF Rest 端点中处理自定义数据合同序列化

我想使用 XML 属性而不是 xmlrequest 和 xmlresponse 中的元素,我实现了 IXmlSerializable 如下:

但我的服务帮助显示请求和响应为未知


我什至尝试了 XmlSerializerFormat

然后我将 xml 中的所有内容作为 xmlElements 而不是 XmlAttributes 但我将所有数据作为元素而不是 Xmlattributes 获取。

0 投票
2 回答
870 浏览

c# - XmlReader ReadString() 从 "\r\n" 中删除 '\r'

我有一个继承自IXmlSerializable. 我已经正确地覆盖了ReadXmlandWriteXml方法。

我正在使用XmlSerializer将对象序列化/反序列化为 xml 文件。

当我Serialize对象时,它正在正确地写入\r\n文件。但是当我Deserialize以同样的方式处理对象时,\r已被删除,只有\n存在。我无法弄清楚它为什么这样做。

0 投票
1 回答
602 浏览

c# - 具有自定义架构和 IXmlSerializable 的 Xml 序列化

我正在尝试使用IXmlSerializableXmlSchemaProviderAttribute.

架构如下所示:

获取架构的代码如下所示(如在此处找到):

现在,当我尝试使用序列化对象时XmlSerializer出现异常:{“PlanerModel.BuildingsStatistics.BuildingsSchema() 必须返回有效的类型名称。在 targetNamespace='BuildingModelSchema' 中找不到类型'buildings'。”}

编辑:
在尝试反序列化一个有效的测试文档后,我得到了同样的错误信息。我预计 xml 架构有问题,但由于这是我第一次使用 xml 架构,我似乎没有发现错误。

进一步的测试表明,在初始化时引发了异常XmlSerializer

此外,XmlSchemaBuildingsSchema方法中添加的内容不包含任何元素(在我的情况下,0 个元素和 14 个全部为“空”的项目(没有行号、位置等))。

0 投票
2 回答
53 浏览

c# - 如何为 SomeClass 实现 ReadXml:IList其中 IFoo 的所有实例都是 IFoo变化的T

我有一个需要序列化/反序列化的类,我已经完成了一半 - 我有序列化功能,导致下面的 XML。但是,由于我IXmlSerializable自己实现,我不确定 的实现ReadXml应该是什么样子,因为它SomeGenericClass<T>是使用基于属性的标记而不是显式实现进行序列化的 ifIXmlSerializable

我想将其序列化回以下实例:

列表将包含沿这些行的实例:

编辑:扩展了实现 - 按原样实现,它没有正确说明问题

核心问题是我希望能够序列化仅实现接口的项目,即使我只获取SomeGenericClassBase实例。根据该方法中使用的ExpandToTyped方法,我希望该类的使用者在实现中保存足够的数据,从而允许根据需要将生成的类转换回其原始形式。所以,是的,保真度有所降低,但我可以接受它,以换取使用接口列表而不是基类列表的灵活性。

0 投票
0 回答
361 浏览

xmlserializer - IXmlSerializable 和根元素前缀

我到处看了看,没有一个回答是有效的,或者问题只是稍微偏离了一点,以至于没有让我得到我需要的答案。鉴于我所寻找的所有搜索,.Net 的 xml 序列化实现似乎存在一个巨大的缺陷。

默认:

输出:

IXmlSerializable:

输出:

为什么!

我们如何解决这个问题?

这一点很重要,因为如果没有自定义处理,我将被迫双步执行,并将序列化的 xml 处理为 XmlDocument 以修复此故障。是的,这一定是个小故障。除了根元素,我可以解决其他所有问题。

我不是唯一需要知道如何做到这一点的人。

感谢 Jaeden "Sifo Dyas" al'Raec Ruiner

0 投票
4 回答
999 浏览

c# - c# 使用 IXmlSerializable 反序列化

我有这样的xml:

我需要将它反序列化为类。但问题是,那一周将在未来发生变化(它将包含更多元素,我不知道它们的名称)

数据:

审计值:

星期:

但是在反序列化之后,我只有一个元素,在字典值中只记录了一个元素。我做错了什么?

GitHub: https ://github.com/olegletynain/XmlTest/tree/master/XmlTestRead