Код, который я написал, интегрируется с сторонним веб-сервисом. Проблема в том, что действия мыла для обслуживания различаются в тестовых и производственных средах, и хотя эти URI не важны, возвращается хост 400 - ошибка с неправильным запросом, если URI мыльного кода неправильный. Хост-сервис написан на Java. Мы используем прокси-сервер веб-службы C#.Изменение мыльного действия URI на основе среды
Reference.cs
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://1.1.1.1:9080/wss/Ping", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
[return: System.Xml.Serialization.XmlElementAttribute("PingResp", Namespace="http://namespace/data")]
public PingResp Ping([System.Xml.Serialization.XmlElementAttribute("PingReq", Namespace="http://namespace/data")] PingReq PingReq) {
object[] results = this.Invoke("Ping", new object[] {
PingReq});
return ((PingResp)(results[0]));
}
Для производственной среды, SOAPAction является:
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://2.2.2.2:9080/wss/Ping", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
Есть ли способ, чтобы сделать эту динамику, т.е. можно ли изменить мыльное действие URI на основе настройки конфигурации?
Я попытался расширить класс SoapDocumentMethodAttribute
, но он запечатан.