Json.Net序列化一个数组并反序列化为一个列表

时间:2010-12-22 13:59:29

标签: serialization json.net

这是我的班级

public class Agency
{
  private IList<AgencyCommission> _commission;

    public Agency()
    {
         _commission = new List<AgencyCommission>();
    }

    public string Name {get; set;}
    public AgencyCommission[] Commissions
    {
       get {return _commissions.ToArray();}
       private set {_commissions = value;}
    }

    public void ComissionAdd(AgencyCommission commission)
    {
        if (commission != null)
        {
            _commissions.Add(commission);
        }
    }
}

序列化然后反序列化它完美无缺,直到我尝试添加新的佣金,它会出错:

System.NotSupportedException : Collection was of a fixed size.
at System.SZArrayHelper.Add(T value)
at Agency.ComissionAdd(AgencyCommission commission) in Agency.cs: line 62

如何使这个工作?定制转换器?自定义解析器?

任何示例代码都非常感谢!

1 个答案:

答案 0 :(得分:2)

我找到了解决方法:

public AgencyCommission[] Commissions
{
   get {return _commissions.ToArray();}
   private set {_commissions = new List<AgencyCommission>(value);}
}