我有一个模型用于将数据序列化为xml。
实施例
public class File : IFile
{
[XmlAttribute]
public string ObjectId;
public string OriginalFileName { get; set; }
public string FileName { get; set; }
public int Size { get; set; }
public string Note { get; set; }
public static explicit operator File(FileItem a) // explicit File to FileItem conversion operator
{
File b = new File(); // explicit conversion
b.ObjectId = a.ObjectId;
b.Note = a.Note;
b.FileName = a.FileName;
b.OriginalFileName = a.OriginalFileName;
b.Size = a.Size;
return b;
}
}
这些类主要用于在worddocument中读取和保存xml文档。 在主应用程序中,我需要数据是可观察的,所以在这种情况下我使用prism,类继承自Notificationobject。
实施例
public class FileItem : NotificationObject, IFile
{
public FileItem()
{
}
public static explicit operator FileItem(File a) // explicit File to FileItem conversion operator
{
FileItem d = new FileItem(); // explicit conversion
d.ObjectId = a.ObjectId;
d.Note = a.Note;
d.FileName = a.FileName;
d.OriginalFileName = a.OriginalFileName;
d.Size = a.Size;
return d;
}
private string _objectid;
public string ObjectId
{
get { return _objectid; }
set
{
if (!value.Equals(_objectid))
{
_objectid = value;
this.RaisePropertyChanged(() => this.ObjectId);
}
.................
所以我做的是我首先将xml文件读入File类,然后我需要将其转换为FileItem类,当我想将其保存回xml时,我需要再次进行反向转换。这对我来说似乎有点愚蠢。我可以想到一个解决方案,我直接序列化到FileItem但我需要保持文件简单,因为它在一个程序集中定义,该程序集由不需要notificationobject的其他组件使用,并且不会安装prism程序集。
关于如何简化此事的任何想法。