小编Nik*_*RIP的帖子

为什么序列化double []在WinCE中不起作用?

我有一个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 …

.net c# xml-serialization windows-ce

4
推荐指数
1
解决办法
444
查看次数

与string.Empty(c#)相比的最佳性能

两者之间有什么区别吗?

if(string.Empty.Equals(text))
Run Code Online (Sandbox Code Playgroud)

if(text.Equals(string.Empty))
Run Code Online (Sandbox Code Playgroud)

关于性能,意外行为或可读性?

.net c#

2
推荐指数
3
解决办法
667
查看次数

标签 统计

.net ×2

c# ×2

windows-ce ×1

xml-serialization ×1