XmlSerializer 没有序列化我的类中的所有内容

2024-03-09

我有一个非常基本的类,它是子类的列表,加上一些摘要数据。

[Serializable]
public class ProductCollection : List<Product>
{
    public bool flag { get; set; }
    public double A { get; set; }
    public double B { get; set; }
    public double C { get; set; }
}


// method to save this class
private void SaveProductCollection()
{
    // Export case as XML...
    XmlSerializer xml = new XmlSerializer(typeof(ProductCollection));
    StreamWriter sw = new StreamWriter("output.xml");
    xml.Serialize(sw, theCollection);
    sw.Close();
}

当我打电话时SaveProductCollection()我得到以下信息:

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfProduct xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Product>
    <InputType>1</InputType>
  </Product>
  <Product>
    <InputType>1</InputType>
  </Product>
</ArrayOfProduct>

请注意,我有基本类型:List<Product>。但我没有任何类属性:flag、A、B、C。

我做错什么了吗?这是怎么回事??

UPDATE感谢您的回复。我不知道这是设计使然。我已经转换为 BinaryFormatter (用于二进制序列化)并且它工作得非常好。


下列的msdn http://msdn.microsoft.com/en-us/library/ms950721.aspx:

问:为什么集合类的所有属性没有被序列化?

答:XmlSerializer 仅在检测到 IEnumerable 或 ICollection 接口时才序列化集合中的元素。此行为是设计使然。唯一的解决方法是将自定义集合重构为两个类,其中一个类公开包括一种纯集合类型的属性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XmlSerializer 没有序列化我的类中的所有内容 的相关文章

  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template

随机推荐

  • 如何在由空格分隔的字符串的中点添加换行符

    使用 php 如何在字符串相对中间的空白处插入换行符 或者换句话说 如何计算句子中的单词数 然后在句子的中间点换行 这个想法是为了避免博客文章标题第二行出现寡妇 废弃的单词 方法是将每个标题切成两半 如果标题占用一行以上 则将其放在两行上
  • C# 中反射的 SetValue

    考虑这段代码 var future new Future future GetType GetProperty info Name SetValue future converted 在上面的代码中 我们应该传递两个参数SetValue 首
  • SceneKit - 如何获取 .dae 模型的动画?

    好吧 我在这里使用 ARKit 和 SceneKit 我在查看其他涉及 SceneKit 试图在其中建立模型的问题时遇到了麻烦 dae格式化并加载各种动画以使该模型运行 现在我们在 iOS11 中似乎某些解决方案不起作用 这是我从基地获取模
  • Haskell 中是否执行单子法则?

    来自 Haskell 维基 Monad 可以被视为各种标准编程接口 数据或控制结构 由 Monad 类捕获 全部 常见的单子是它的成员 class Monad m where gt gt m a gt a gt m b gt m b gt
  • 如何处理Matlab parfor循环中的未分类变量?

    我有以下代码 我想使其并行 但不幸的是 当我使用 parfor 循环时 出现以下错误 这是代码 parfor l1 1 length lambda1 list over l1 for l2 1 length lambda2 list par
  • Chrome SVG 网络字体在选择输入中出现奇怪的字符

    Windows 8 上的 Chrome 26 0 1410 64m 在渲染 WebFonts 时出现问题 这是一个已知问题 解决方案是首先提供字体的 svg 版本而不是 woff 版本 它修复了抗锯齿并使字体看起来再次漂亮 此方法的缺点是选
  • Safari iOS 12.2 和 12.3 中的错误

    所以我刚才在做个人项目时注意到了一些奇怪的事情 以下代码将导致位置问题div如果手机在方向之间来回切换 则元素处于纵向模式 而不是div如果固定或与屏幕底部齐平 div 将漂浮在屏幕上方并且根本不接触屏幕底部 html width 100
  • Java 中的泛型和反射

    这可能是一个非常基本的问题 但我对 Java 中的泛型确实很陌生 而且我很难改变我的思维过程与 C 中的完成方式 所以请耐心等待 我正在尝试用 Java 构建一个通用存储库 我创建了一个 IRepository 界面 如下所示 public
  • 在asp.net中使用表单身份验证时,是否可以使用iis 7来管理用户

    我有一个使用表单身份验证的 ASP NET Web 应用程序 一切都已配置并正常工作 但是 我正在处理创建和维护用户和角色成员资格的问题 我知道我可以推出自己的解决方案 但我想知道是否有替代解决方案 iis7 是否提供用于管理表单身份验证用
  • 如何使用 WinAPI 锁定内存中的页面?

    我需要防止应用程序的内存页面在 Windows 上从 RAM 中换出 是否有与 POSIX 等效的 WinAPI 函数mlockall http opengroup org onlinepubs 007908799 xsh mlockall
  • Erlang中socket的“packet”选项怎么能如此加速tcp传输呢?

    使用 packet 4 通过本地主机上的两个不同端口传输1G数据只需要8秒 而使用 packet raw 则无法在30秒内完成相同的任务 我知道如果使用后一种方法 数据将以数万个小块的形式到达 在archlinux上大小为1460字节 我已
  • 检查文件是否包含字符串

    所以我在这里找到了这个问题 但我对输出以及如何使用 if 语句处理它有疑问 这就是我所拥有的 但它总是说这是真的 即使文件中不存在监视器这个词 if File readlines testfile txt grep monitor do s
  • 为什么Java不支持在finally抛出异常时从try/catch中检索丢失的异常?

    在 Java 7 中 该功能被添加到 通过getSuppressed 获取从 try with resources 语句的隐式 finally 块抛出的异常 似乎仍然没有一种方法 据我所知 可以做相反的事情 当有一个显式的finally块并
  • 在 HTTP 请求中指定端口号 (node.js)

    使用请求模块发出 HTTP 请求时是否可以指定端口号 我在文档中没有看到任何有关此内容的信息 var request require request this works request method GET url http exampl
  • h 标签的额外字间距

    I have h2标签并且有内容 before HTML h2 class glyphicon arrow heading text white margin zero This is h2 tag and it has word spac
  • 创建运行批处理文件的快捷方式

    我想创建一个 powershell 脚本 在 Windows 7 任务栏中创建一个快捷方式 从 cmd exe 运行批处理文件 尝试按照这两篇文章中的说明进行操作 https superuser com questions 100249 h
  • 具有动态依赖关系的静态库

    我遇到过很多类似的问题 但我并没有真正得到答案 因此 我有一个依赖于 Static lib 的 App exe 而 Static lib 又依赖于动态库 Dynamic dll 在 Static lib 中 我链接到 Dynamic lib
  • 爬虫脚本php

    我在这里抓取了一段脚本来抓取网站 将其放在我的服务器上并且它可以工作 唯一的问题是 如果我尝试爬行并将深度设置为 4 以上 则它不起作用 我想知道这是由于服务器缺乏资源还是代码本身造成的
  • 如何进行复杂的查询? | ChartJS 和 Django

    我使用下面的 Chart JS 库创建了一个图表 我的 models py 下面 class Organization models Model name models CharField max length 250 unique Tru
  • XmlSerializer 没有序列化我的类中的所有内容

    我有一个非常基本的类 它是子类的列表 加上一些摘要数据 Serializable public class ProductCollection List