为什么Serialize无法完成它的工作?

时间:2013-08-14 13:05:30

标签: c# c#-4.0 serialization javascriptserializer

我有一个简单的测试模型:

[Serializable]
public class PageModel : IPageModel
    {
        Guid _guid;

        public Guid GUID
        {
            get
            {
                if (_guid == Guid.Empty)
                    _guid = Guid.NewGuid();
                return _guid;
            }
            set
            {
                _guid = value;
            }
        }
        public bool ShouldSerializeGUID()
        {
            return false; // GUID still serialized!
        }
}

我尝试将其序列化为:

    JavaScriptSerializer serializer = new JavaScriptSerializer();

    string jsonData= serializer.Serialize(pageModelInstance);

有人可以告诉我这里缺少什么吗?

还有其他方法可以进行条件序列化吗?

1 个答案:

答案 0 :(得分:1)

基本上,JavaScriptSerializer不支持条件序列化的模式。所以:使用一个 - 幸运的是,Json.NET 支持这一点,并且工作正常:

string jsonData = JsonConvert.SerializeObject(pageModelInstance);

(不需要进行其他更改,但您可以安全地删除[Serializable] - 这是不需要的)