【问题标题】:Cannot serialize type 'TickDataDefinition.data' because it does not have any serializable fields nor properties无法序列化类型“TickDataDefinition.data”,因为它没有任何可序列化的字段或属性
【发布时间】:2014-03-11 14:23:55
【问题描述】:

当我尝试如下声明序列化程序时出现此错误。它返回错误,我不明白它的含义。

var serializer = MsgPack.Serialization.MessagePackSerializer.Create<data>();            

下面是类定义。

using System;
using System.Collections.Generic;
using System.Text;

namespace TickDataDefinition
{
    class data
    {
        private enum type { trade, quote }
        private long time;
        private double bid1;
        private double ask1;
        private double bidsize;
        private double asksize;
        private double price;
        private uint size;
        public data()
        {
        }
        public data(long t, double b, double a, double bs, double ask)
        {
            time = t;
            bid1 = b;
            ask1 = a;
            bidsize = bs;
            asksize = ask;
        }
        public data(long t, double p, uint s)
        {
            time = t;
            price = p;
            size = s;
        }

    }
}

【问题讨论】:

  • 没有公共字段或属性,只有私有字段或属性。那些没有序列化。

标签: c# serialization msgpack


【解决方案1】:

该类的所有元素都是私有的,而不是构造函数(无论如何都不能序列化,如果这样就没有意义)。公开一些实际可访问的元素并序列化。

【讨论】:

    猜你喜欢
    • 2022-11-12
    • 2018-11-22
    • 2013-05-23
    • 2017-01-08
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    相关资源
    最近更新 更多