簡體   English   中英

c#SOAP客戶端到具有多個名稱空間的PHP webservice

[英]c# SOAP client to PHP webservice with multiple namespaces

我們正在構建通過soap Web服務與另一個應用程序通信的應用程序。 另一個應用程序是由另一家公司使用PHP開發的。 我們的應用程序是其Web服務的客戶端。

我們有測試環境,我們連接我們的應用程序,一切正常。 然后我們轉到生產環境。 但是他們的Web服務命名空間是基於URL自動生成的,因此test和prod env中的命名空間不匹配。

我再次使用svcutil生成SOAP客戶端用於生產,但是當我將我的解決方案部署到測試環境時,我無法連接到他們的Web服務。 他們也不願意改變任何事情。

是否可以在運行時根據端點地址更改Web服務客戶端的命名空間?

據我所知,您無法在運行時更改命名空間。 絕對可行的明顯選擇可能是在編譯時完成它,例如;

#if PRODUCTION
[ServiceContract(Namespace = "MyProduction Namespace", Name = "PhpServiceContract")]
#else
[ServiceContract(Namespace = "MyTest Namespace", Name = "PhpServiceContract")]
#endif

如果你在多個地方使用它並且不想在任何地方#if ,只需將它移動到一個常數;

[ServiceContract(Namespace=Definitions.CURRENT_NAMESPACE, Name = "PhpServiceContract")]

然后在一個地方定義它;

public static class Definitions
{
#if PRODUCTION
    public const string CURRENT_NAMESPACE = "MyProduction Namespace";
#else
    public const string CURRENT_NAMESPACE = "MyTest Namespace";
#endif
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM