如何忽略使用Akavache缓存不可序列化的属性?

时间:2014-12-28 13:50:24

标签: c# android xamarin akavache

我有一个使用Akavache缓存的自定义类。该类包含一个非可序列化的属性(它是一个ParseFile对象)。当我尝试使用GetAndFetchLatest缓存/获取此自定义类的列表时,它不起作用。我想这可能是由一个不可序列化的属性引起的。尝试了JsonIgnore属性,但没有帮助。

问题是,如何告诉Akavache缓存自定义类列表中的所有内容,但非序列化属性除外?自定义类的示例在这里,我希望它忽略Photo属性:

[ParseClassName("User")]
public class User : ParseObject
{
    [ParseFieldName("name")]
    public string Name
    { 
        get { return GetProperty<string>(); }
        set { SetProperty<string>(value); }
    }

    [ParseFieldName("photo")]
    public ParseFile Photo
    { 
        get { return GetProperty<ParseFile>(); }
        set { SetProperty<ParseFile>(value); }
    }
}

2 个答案:

答案 0 :(得分:2)

使用[DataContract][IgnoreDataMember]来阻止字段序列化

答案 1 :(得分:1)

默认的Json.Net行为是序列化除[JsonIgnoreAttribute]属性标记的所有公共字段和属性。 参考:http://james.newtonking.com/archive/2009/10/23/efficient-json-with-json-net-reducing-serialized-json-size