我有这个简单的课程:
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);
}
}
问题:
我做错了什么?为什么阵列没有被序列化,我可以把它包括在内吗?
答案 0 :(得分: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; }
}
因为您稍后使用ToArray()
填写它,所以您不需要初始化它。如果您仍想要,请使用构造函数或编写长属性。