2015-02-24 44 views
0

哪種解決方案更適合創建XML?
創建模型的XML文檔,填好,然後使用:C#:序列化對象vs創建新的XDocument

 XmlSerializer serializer = new XmlSerializer(xmlModel.GetType()); 
     StringWriter sww = new StringWriter(); 
     XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); 

     ns.Add("", ""); 
     XmlWriter writer = XmlWriter.Create(sww); 
     serializer.Serialize(writer, xmlModel, ns); 

     string xmlString = sww.ToString(); 

或手動創建XML文件,如:

XDocument xml = 
      new XDocument(
       new XElement("el1", 
        new XAttribute("xcv", xcv), 
        new XAttribute("cvb", cvb ?? string.Empty), 
        new XAttribute("vbn", vbn ?? string.Empty), 
        new XAttribute("bnm", bnm), 
        new XAttribute("nm", dnm), 

...

我知道解決方案1需要更少的代碼,但我可以信任.net序列化?

+2

這個問題並不真正符合計算器規則。它太籠統了。你有沒有信任.net序列化的特定原因?又是什麼讓你認爲你可以「信任」XDocument方法?我廣泛使用了序列化,它使用的代碼很少,非常易於維護,可擴展且易於閱讀。它的確意味着你在設計你的xml時必須遵循一定的規則,但是我從未發現這是一個問題。 – 2015-02-24 08:01:05

+1

這太籠統了。你在找什麼?解析靈活性?速度?你還應該考慮這兩者之間的可維護性差異。 – 2015-02-24 08:08:37

+0

你說得對,這個問題太籠統了。我關心正確的操作,一個項目是非常嚴重的,所有的XML生成爲例2,但我不喜歡這個解決方案。所以我問.Net序列化是否穩定,有一些隱藏的陷阱。 – devQwerty 2015-02-24 08:28:54

回答

1

我已經在很多事件中使用了.NET序列化,並且我沒有遇到任何嚴重的問題,但這並不一定意味着您不會。可能有其他開發人員將.NET的服務視爲陷阱。

在我的小見解中,我發現.NET的序列化非常令人滿意並且易於使用。儘管最近我才使用XDocument,但我發現使用XML查詢很容易,但無法提供有關創建文檔的任何反饋。

P.S. :請讓我問一下,在創建XML文檔時是否會遇到特殊情況,這可能會導致使用.NET序列化的麻煩?