2012-03-23 26 views
8

是否推薦使用svcutil工具而不是xsd工具?我沒有把這看作是一個確認的陳述,但看起來確實如此。 我對此感到困惑的原因是我使用這兩種工具生成了一個類。但是,我使用xsd獲得了更好的課程。 XSD模式僅由DataContracts組成。Xsd.exe或Svcutil.exe將XSD架構轉換爲類

我用下面的命令爲SvcUtil工具:

svcutil path-to\xyz.xsd /language:C# /dataContractOnly /importxmltypes /out:path-to\class.cs 

這產生所需的類。但是,它僅包含字段的XmlNode []對象。

然後,我用了XSD以下命令:

xsd.exe /c path-to\xyz.xsd /out:path-to\class.cs 

它產生更好的類比SvcUtil工具一樣。大多數字段都按需要轉換。

我應該有什麼理由相信我應該使用svcutil over xsd嗎?

回答

5

據我所知,XSD.exe有一些限制;例如當類中存在Dictionary<,>時,XSD.exe不能生成適當的XSD;因爲Dictionary不執行IXmlSerializable

+0

好的。我還有其他一些模式,我將使用這些工具進行轉換,並查看對我的用法更好的方法。我將相應地選擇適當的工具。 – 2012-03-23 11:51:27

2

svcutil不支持xml屬性。如果您需要在架構中使用它們,則最好使用xsd.exe。

我個人更喜歡使用svcutil over xsd,並且我已經學會了如何形成我的模式來輸出我想要的類結構,但是我也主要使用從頭開發的模式,而不是消耗預定義的。