Car*_*rlo 10 .net xmlserializer
我有这门课:
public class MySerializableClass
{
public List<MyObject> MyList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果MySerializableClass被序列化时MyList为null,那么当它反序列化时我需要将它置为null,但是当它反序列化我的类时,XmlSerializer总是初始化它.
有没有办法避免它初始化null属性?
当它为空时,MyList甚至不会记录在序列化文件中.当我使用空值加载它并再次保存时,MyList不再为null,它被序列化为包含0项的List <>,但不是null.
谢谢.
更多信息:
由于类的结构中存在一些代码限制,IsDeserializing属性不可行
Tho*_*que 11
这看起来像个bug ...
即使您尝试将该属性标记为可为空,它似乎也不起作用.
[XmlArray(IsNullable = true)]
public List<MyObject> MyList { get; set; }
Run Code Online (Sandbox Code Playgroud)
它按如下方式序列化MyList属性:
<MyList xsi:nil="true" />
Run Code Online (Sandbox Code Playgroud)
因此XML清楚地表明该列表为空,但在反序列化之后,它仍然被初始化为空列表...
如果要更换List<MyObject>有MyObject[],它工作正常(即使没有IsNullable = true),但它可能不是你想要的...
你应该在Connect上报告这个.
| 归档时间: |
|
| 查看次数: |
3224 次 |
| 最近记录: |