我有一个Object with(de-)通过system.xml.serializer序列化它的配置
配置在类中,如下所示:
public struct Phase
{
public Int16 Trafo;
public KorrekturWerte Spannung;
public KorrekturWerte Strom;
[XmlArray("Min")]
public double[] Min;
[XmlArray("Max")]
public double[] Max;
public bool CheckThis;
}
public class ParameterHardware
{
public string WAGOId = "00:30:DE:05:33:CB";
public Byte Phasen = 0x07;
public Phase L1;
public Phase L2;
public Phase L3;
}
Run Code Online (Sandbox Code Playgroud)
(De-)在WindowsXP系统上对其进行序列化可以正常工作,但在Windows CE上,最小/最大阵列只是在de-然后重新序列化之后就会混淆("CheckThis"作为测试放在那里,并在序列化之后跟随"斯特罗姆"的价值观).由于KorrekturWerte再次成为一个结构,深度不是问题.我的第一个版本中没有[XmlArray ...],只是来自另一个测试.
编辑:
问题不是(仅)序列化.试图访问Min [...]我得到一个空引用错误.
也许它不清楚:我有一个类的序列化,其中包含所有值.对其进行反序列化以初始化该类,然后将其重新序列化为调试检查.现在缺少这些字段.(原始文件在XP中序列化,可以正常工作)
将double []更改为List无济于事.(相同的结果)
xml文件:原文:
00:30:DE:05:53:65 1 50 -0.2 1 0.004 0.994 0 0 0 0 0 500 32 15000 15000 …
两者之间有什么区别吗?
if(string.Empty.Equals(text))
Run Code Online (Sandbox Code Playgroud)
和
if(text.Equals(string.Empty))
Run Code Online (Sandbox Code Playgroud)
关于性能,意外行为或可读性?