0

我有这个简单的课程:

 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);
                }
            }

问题 :

我究竟做错了什么 ?为什么数组没有被序列化,我怎样才能让它被包含在内?

4

1 回答 1

2

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; }
}

因为您稍后用 a 填充它,所以ToArray()您实际上不需要初始化它。当您仍然需要时,请使用构造函数或编写属性的长格式。

于 2014-05-10T16:54:04.640 回答