Omr*_*mri 3 c# serialization json jsonserializer servicestack
我正在尝试使用ServiceStack.Redis,我注意到当我使用公共成员存储一个对象并尝试稍后获取它时,我得到null.
我检查并发现ServiceStack.Redis正在使用ServiceStack.JsonSerializer,所以我试图创建一个测试用例,我注意到ServiceStack.JsonSerializer没有序列化公共成员:
public class ClassA
{
public string Id;
public string Id2 { get; set; }
}
static void Main(string[] args)
{
ClassA t = new ClassA();
t.Id = Guid.NewGuid().ToString("n");
t.Id2 = Guid.NewGuid().ToString("n");
string a = JsonSerializer.SerializeToString<ClassA>(t);
ClassA t2 = JsonSerializer.DeserializeFromString<ClassA>(a);
Console.WriteLine("id " + t2.Id);
Console.WriteLine("id2 " + t2.Id2);
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的(如果您测试该代码),Id(公共成员)为null,Id2(公共属性)与我们输入的字符串相同.
那我在做错什么?
谢谢!
您可以告诉JsonSerializer包含公共字段.
ServiceStack.Text.JsConfig.IncludePublicFields = true;
Run Code Online (Sandbox Code Playgroud)