He creado una clase SoapExtension para capturar la solicitud de jabón y la respuesta de llamadas de servicio web específicas. Para poner en vigencia esta SoapExtension, debo agregar un atributo al método en el cliente proxy generado.Cómo agregar el atributo SoapExtension al proxy del cliente del servicio web generado sin modificar la clase generada?
Por ejemplo, he añadido el atributo AuditSoapCapture a este método:
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://blahblah.com/webservices/AddressSearch", RequestNamespace = "http://blahblah.com/webservices/", ResponseNamespace = "http://blahblah.com/webservices/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
[blahblah.TriadLite.Core.AuditSoapCapture]
public System.Data.DataSet AddressSearch(string HouseNumber, string StreetName, string ZipCode) {
object[] results = this.Invoke("AddressSearch", new object[] {
HouseNumber,
StreetName,
ZipCode});
return ((System.Data.DataSet)(results[0]));
}
Busco una forma de añadir este atributo a métodos específicos, sin modificar el proxy cliente generado, ya que se pierdan cuando nos regeneramos ¿Puedo hacer esto en otra clase o interfaz parcial o de alguna otra manera?
Gracias!
tratar de utilizar la infraestructura [SchemaImporterExtension] (http://msdn.microsoft.com/en-us/library/system.xml.serialization.advanced.schemaimporterextension.aspx) llamando a wsdl.exe con la opción '/ parameters' (http://msdn.microsoft.com/en-us/library/7h3ystb6.aspx) – Lu55