[英]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.