回答

2

下面是我看到的使用Linq到XML 现在的主要好处

XmlSerializer需要一个默认(无参数)构造函数。所以,如果你正在做任何形式的控制反转,并通过构造函数将依赖关系传递给你的类,那么你还需要一个默认构造函数来绕过这些依赖关系的注入。这有点挫败了使用构造函数注入的全部目的。

当然,使用LINQ到XML,你需要编写自己的序列化代码,但我已经做了与无论是像FromXml一套方法和ToXml或只是一个Xml属性与getter和setter是做正好需要保存的字段的序列化。我喜欢在代码中使用该控件,而不必在某些属性上使用属性来忽略它们。

+0

我的“XmlSerializer对象”并不那么重要:我只使用它们作为帮助类来实现我的IRepository 接口,因此它们在数据访问层之外是“不可见的”。 :) 我想我的解决办法是与你相似:基类XmlRepository (TXmlTag是“XmlSerializer对象”)有两个保护抽象的“转换”的方法... TXmlTag转换(TDomainObject实体) ; TDomainObject转换(TXmlTag标签); 也许我可以直接在Convert方法中编写linq查询,而无需编写大量额外的映射类... – Notoriousxl 2011-11-28 20:09:01