【发布时间】:2011-08-24 14:28:01
【问题描述】:
我们有从外部程序生成的 XML,需要读入我们的 C# 应用程序。
我知道我们可以使用带有[Serializable] 标签的 C# 类来加载到对象中,但问题是我们已经有了我们的对象,它实际上比 Xml 更加面向对象。我们不希望有 2 组对象。
我的想法是我可以使用 LinqToXml 打开文件并填充我们的对象。这样做可以吗,或者真正最好的方法是将[Serializable]标签与XmlElementAttribute和其他标签一起使用到我们的OO模型中? (如果最新的是好的解决方案,我怎样才能将属性放在对象内的对象中或使用继承?)。
编辑:示例
假设我有:
public class Movie {
public string Name;
public Actor LeadActor;
}
public class Actor {
public string Name;
public DateTime DOB;
}
我想像这样序列化电影:
<Movie>
<Name>Casino Royale</Name>
<LeadActor>Daniel Craig</LeadActor>
</Movie>
我认为使它起作用的唯一方法是修改 Movie 以具有一个 LeadActor 属性,该属性将连接 Actor 属性并使两个 Actor 属性都具有 [XmlIgnore] 属性。但是如果我不想更改那些业务对象怎么办?
【问题讨论】:
标签: c# .net xml c#-4.0 .net-4.0