我有一个包含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
?