我有这个简单的类:
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);
}
}
问题:
我做错了什么?为什么数组没有序列化,我怎样才能让它包含在内?
最佳答案
您的 friend
是一个字段,而不是一个属性。
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()
填充它,所以您实际上不需要初始化它。如果您仍然需要,请使用构造函数或编写属性的长格式。
关于c# - Redis 不会序列化我的复杂对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23583826/