[英]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.