2010-05-17 169 views
1

我的服務使用另一個DLL中定義的類型Foo,並且我的客戶端也使用該DLL來獲取該類型。我不希望爲該類型生成代理類,而是希望代理代碼只引用實際類型。我可以通過在正在運行的服務上使用WSDL.EXE生成代理,手動編輯部分類的Foo定義並添加Using語句來手動完成此操作。如果可能的話,我希望不用手工編輯就可以做到。svcutil.exe排除類型問題

看來也許答案是使用SVCUTIL.EXE而不是WSDL.EXE。有兩個有趣的選項:/ R和/ ET。我嘗試了將/ ET:Foo和/ET:My.FQN.Util.Foo和/ET:www.my.com.the.servicenamespace.Foo,並將DLL文件名添加到該選項。但是在創建的ServiceWithFoos.cs代理類中沒有任何更改。 Foo的部分類定義仍然存在。

我在正確的軌道上嗎?我究竟做錯了什麼?

回答

0

[DataContract(Namespace = "http://anything.here")]添加到您的Foo類型,然後使用帶/ r選項的svcutil來獲取包含Foo的庫的路徑。這樣svcutil應該看到相同的合約命名空間並正確映射Foo。

+0

這不起作用。不幸的是,這個網站不會允許我發佈錯誤信息!在過去的30分鐘裏,我一直在嘗試各種各樣的事情,但總是拒絕我的投入。提交按鈕灰色,當我點擊它。有錯誤消息中涉及的URL - 可能Stackoverflow認爲我試圖破解它。 – cstacy 2010-05-17 20:29:53