2011-09-09 50 views
1

考慮以下之間的名稱衝突:我有BizTalk項目和裏面我已經把XSD模式的消息。 這些模式位於命名空間「A」中。我有另一個Web服務,它也使用名稱空間爲「A」的數據合同。 因此,當我添加一個Biztalk的第一個項目的服務引用時,VS爲第二個項目中的datacontracts生成模式。 因此,我有2個具有相同名稱空間和根元素的模式。如何避免的XSD的BizTalk消息和WCF服務datacontracts

+0

希望你不介意,但我重新命名您的文章。如果你反對,我會改回它。 –

回答

1

OK,我想我現在可以看到你的問題。那麼我的問題就是爲什麼你首先有名稱衝突?如果生成的模式是從正在運行的服務實例生成的,那麼您不需要編寫自己的模式代碼,只需使用生成的模式。

或者,我可以理解這種不同的方式:你已經開發出用於不同目的的模式,但他們只是碰巧共享相同的根節點名稱和命名空間爲生成的模式。在這種情況下,您應該通過更改目標名稱空間和/或根節點名稱來重構您的非生成模式。

這是最好的做法永遠不會再使用目標命名空間跨越的消息在BizTalk服務器。事實上,當你建立你的解決方案時,編譯器發出警告,當你這樣做。

這可能爲你做到這一點?

+0

說實話,我已經改變了我正在使用的服務的datacontracts的命名空間,並解決了這個問題。但是我仍然想知道什麼是a)定義一個消息類型以便在BizTalk中工作的最佳方法,以及b)爲該消息定義用於WCF服務的數據合同。 –

+0

當您在WCF服務中生成數據合同時,您不應該考慮biztalk方面。 Biztalk將生成所有需要與您的服務進行通信的biztalk消息。也許我完全錯過了你的問題的重點? –