回答

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