Dav*_*vid 4 c# ienumerable xml-serialization
每当我尝试序列化具有IEnumerable集合的对象时,我都会遇到一个很大的错误,告诉我它无法序列化它,因为它是一个接口.现在我知道它为什么会发生,但它为我提出了一些其他问题.就像我打算在我的对象中拥有集合并且我想序列化它们,我需要求助于
什么是最好的练习方式?
作为一个序列化作者,我确切地知道为什么它变得非常难以稳健地工作IEnumerable<T>,特别是对于"只获取"属性.你可能会尝试IList<T>(虽然如果它想要一个像List<T>/ 这样的具体类型会让我感到惊讶T[],但我怀疑这里真正的问题是你试图用一个模型做两件事,并且不满意不得不妥协到做到这一点.
好的:如果您不想破坏您的域模型,请编写一个用于序列化的单独 DTO模型,并在它们之间进行映射.这通常是微不足道的,并且允许序列化器和域模型在每个工作中都表现出色.当你需要"版本化"系统或引入不同的序列化程序(JSON,protobuf等)时,它也会有很大的帮助.
你的子弹:
Add都可以使用XmlAttributeOverrides要做(参见,但要注意泄漏的程序集,如果你这样做)| 归档时间: |
|
| 查看次数: |
4133 次 |
| 最近记录: |