【发布时间】:2010-10-13 00:49:43
【问题描述】:
我创建了一个 SoapExtension 类来捕获来自特定 Web 服务调用的肥皂请求和响应。为了使这个 SoapExtension 生效,我必须在生成的代理客户端中的方法中添加一个属性。
例如,我在此方法中添加了 AuditSoapCapture 属性:
[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]));
}
我正在寻找一种在不修改生成的客户端代理的情况下将此属性添加到特定方法的方法,因为当我们重新生成时它们会丢失。我可以在另一个部分类或接口或其他方式中执行此操作吗?
谢谢!
【问题讨论】:
-
尝试通过使用
/parameters选项调用wsdl.exe 来使用SchemaImporterExtension 基础架构(msdn.microsoft.com/en-us/library/7h3ystb6.aspx)
标签: c# web-services soap proxy wsdl