2012-12-07 45 views
1

我們有一個xsd文件,其中已經定義了合同。我們使用xsd.exe爲我們的WCF服務生成類,並再次使用XmlSerializerFormat作爲我們的Web服務。在WCF服務中使用我們自己的xsd文件

在我看來,這是一個奇怪的事情,讓WCF爲xsd.exe爲我們生成的類生成一個新的XSD,而我們已經有了我們的XSD定義。

儘管xsd.exe爲我們生成課程做得很好,但它也簡化了複雜類型,您可以在我的previous question中看到;這意味着,xsd在生成類時會發生一些變化,並再次用於Web服務; ArrayOfStringXXX問題..

我們可以告訴WCF服務使用我們自己的xsd文件作爲它的契約,而不是根據xsd.exe提供什麼來生成新的契約嗎?

我試了一下:

TL; DR:我們可以將我們的WCF服務指向我們自己的xsd文件,而不是讓它產生它自己的?

感謝

回答

0

可以使用工具像WSCF.blue從您的XSD文件生成的數據合同類。我有這方面的經驗,並且在大多數情況下工作正常。 See this blog for a good explanation.

還有其他工具可以實現這一點,請參閱this question以獲得一些建議。

在Visual Studio 2012中似乎還有一個新選項,請參閱the documentation。我沒有檢查過我自己。

這種開發方法稱爲合同第一,所以你會發現在谷歌還沒有更多信息:-)

+0

我已經嘗試過WSCF.blue,這也使得串[]替代類.. 。將考慮合同優先工具! – Arcturus

+0

此外,VS 2012中的WCF選項窗格不存在:/非常奇怪。 – Arcturus

+0

看起來WCF選項窗格只在「WCF服務庫」項目上可見,而不在「WCF服務應用程序」上可見。 – GTG

相關問題