Mantenha as definições de proxy do ASMX fora do Reference.cs gerado
Configure um cliente de serviço ASMX através das suas propriedades públicas de proxy e mantenha a personalização necessária dos pedidos separada dos ficheiros de referência regenerados.
Para um cliente ASMX baseado em HttpWebClientProtocol do .NET Framework, configure a propriedade pública Proxy antes da primeira operação de rede:
var service = new ReportsService();
service.Proxy = new WebProxy("http://proxy.example:8080")
{
Credentials = proxyAccount
};
ReportsService é a classe gerada e proxyAccount vem da implementação. As credenciais do serviço SOAP são separadas. Esta atribuição não precisa de ser repetida dentro de cada operação gerada.
Se a alteração disser respeito a uma opção de pedido subjacente ou à instrumentação, utilize o GetWebRequest(Uri) substituível da base antiga. Mantenha uma declaração parcial correspondente num ficheiro compilado separado quando a classe gerada for parcial; caso contrário, um cliente derivado adequado pode fornecer a substituição. Chame a implementação base e preserve a construção normal do pedido.
Essa colocação sobrevive à atualização da referência web: a regeneração pode substituir edições manuais em Reference.cs, enquanto as extensões mantidas separadamente continuam reproduzíveis.
Altere apenas o comportamento do pedido que é realmente necessário. Copiar uma solução alternativa de KeepAlive pode afetar a reutilização de ligações e a autenticação que depende do estado da ligação.
Este é o modelo ASMX/.NET Framework. O WCF e outras pilhas SOAP têm as suas próprias interfaces de transporte. Escolha a definição de cliente suportada antes de introduzir uma extensão personalizada.