繁体   English   中英

Redis不会序列化我的复杂对象?

[英]Redis won't serialize my complex object?

我有这个简单的课程:

 public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
        public int[] friends = new int[100];
    }

然后我像这样创建Ienumerable:

 IEnumerable<Person> lstPerson = ParallelEnumerable.Range(a, b).Select(f => new Person
            {
                Id = ...,
                Name =...,
                Age = ...,
                friends = ParallelEnumerable.Range(0, 100).ToArray()
            });

但是运行Monitor ,你可以看到数组没有被序列化:

在此输入图像描述

相关信息:

这就是我实际插入Redis的方式:

   using (IRedisClient redisClient = new RedisClient(host))
            {
                IRedisTypedClient<Person> phones = redisClient.As<Person>();
                foreach (var element in lstPerson)
                {
                      phones.SetEntry("urn:user>" + element.Id, element);
                }
            }

题 :

我究竟做错了什么 ? 为什么阵列没有被序列化,我可以把它包括在内吗?

你的friends是一个领域,而不是一个财产。

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
  //public int[] friends = new int[100];
    public int[] Friends {get; set; }
}

因为你稍后用ToArray()填充它,你真的不需要初始化它。 如果您仍想要,请使用构造函数或编写长属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM