我有一個將部署到多個域的Web服務。我想擺脫WCF默認名稱空間「http://tempuri.org/」,並將其替換爲部署了Web服務的域,例如「http://mydomain.com/」。我知道這裏最好的解決方案就是讓Web服務存在於一個地方,並將該域用作命名空間,但目前這不是我的選擇。WCF:我需要用動態名稱空間替換「http://tempuri.org/」嗎?
我發現這個問題的部分答案here。在這篇文章中,建議的答案是在配置文件中設置URL屬性,但恐怕我不太理解答案。這個URL屬性到底在哪裏?此外,由於我無法控制的原因,將使用此Web服務的客戶端應用程序沒有app.config文件,因此該客戶端應用程序中的所有配置都必須在代碼中進行設置。我不確定這件事是否重要,但我想我會提及它,以防萬一。
編輯:澄清,我試圖刪除的對「http://tempuri.org」的引用位於由svcutil.exe生成的.cs文件中。
例如
[System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IEmailService/SendEmail", ReplyAction = "http://tempuri.org/IEmailService/SendEmailResponse")]
void SendEmail(Services.Internal.CorrespondenceWebService.Email email);
http://stackoverflow.com/questions/2397519/programmatically-add-an-attribute-to-a-method-or-parameter-任何幫助?稍後分配?從我讀的內容來看,'GetCustomAttributes'返回應用屬性的一個克隆,所以你不能修改它。 – 2011-02-24 18:09:32
爲什麼你需要改變命名空間?它只是一個命名容器。 – 2011-02-24 18:09:57
在MSDN上也發現了這個:http://social.msdn.microsoft.com/forums/en-US/wcf/thread/5573326a-21b3-4d21-b05c-8e00b1674137/ – 2011-02-24 18:11:05