如何在JSON.NET中禁用序列化接口属性

时间:2014-07-21 14:51:50

标签: c# json serialization json.net

我有一个包含ICommand类型属性的接口。当我序列化实现此接口的具体类实例时,ICommand属性也被序列化:

public interface IMyInterface : ICloneable, IEditableObject, INotifyPropertyChanged
{
    ICommand CmdMainDbBrowseButtonClicked { get; }
    ICommand CmdAnalyticsDbBrowseButtonClicked { get; }
    ICommand CmdMediaDbBrowseButtonClicked { get; }
    ICommand CmdWebTrakDbBrowseButtonClicked { get; }
    ICommand CmdTestButtonClicked { get; }
}

JSON序列化表单:

[
  {
    "CmdMainDbBrowseButtonClicked": {},
    "CmdAnalyticsDbBrowseButtonClicked": {},
    "CmdMediaDbBrowseButtonClicked": {},
    "CmdWebTrakDbBrowseButtonClicked": {},
    "CmdTestButtonClicked": {},
    ...
   }
]

这在反序列化时出现问题,因为反序列化器不知道ICommand的具体类型是RelayCommand

如何在反序列化时完全禁用ICommand属性的序列化,或将其类型强制转换为RelayCommand

0 个答案:

没有答案