gpt4 book ai didi

.net - 如何覆盖 GetWebResponse

转载 作者:行者123 更新时间:2023-12-04 14:42:39 25 4
gpt4 key购买 nike

我正在尝试做这个人在这里做的事情来手动解析 SOAP 响应: http://www.codeproject.com/KB/webservices/Java_WS_NET.aspx

我的问题是我从供应商的 Java Web 服务 wsdl 生成的代理类没有我可以覆盖的名为 GetWebResponse 的方法。

所以当文章的作者这样做的时候:

WR = MyBase.GetWebResponse(the_webRequest)

我的类(class)中没有等效的 GetWebResponse,我该怎么办?

最佳答案

这让我想起了几年前的一些记忆。同样的问题,AXIS 和 .Net 不能很好地协同工作。在我的例子中,它与 AXIS 有关,希望将 NULL 属性设置为空字符串,而 .Net 假设可以忽略 NULL 属性(或类似的东西,已经有一段时间了)。

无论如何,您添加的可能是服务引用而不是 Web 引用。删除当前引用并添加一个新引用,但不要在“添加服务引用”屏幕上输入任何内容,而是单击“高级”按钮,然后单击“添加 Web 引用”按钮。这最终会为您提供一个类,您可以在其中覆盖 GetWebResponse()

除了在 VS2008 中 Web Reference 被隐藏以支持 Service Reference 之外,我无法告诉您两者之间的区别。

编辑

获得 Web 引用后,您需要从中派生一个新类。对于下面的示例,我将使用来自 Amazon 的以下 WSDL:

http://soap.amazon.com/schemas2/AmazonWebServices.wsdl

添加一个名为 Test 的新类(或者可能想出一个更好的名称)。让该类继承服务的主类。 (主类可能是 Reference.cs 中列出的第一个类,但无论它在哪里,它将继承自 SoapHttpClientProtocol)。然后重写:

class Test : com.amazon.soap.AmazonSearchService
{
protected override System.Net.WebResponse GetWebResponse(System.Net.WebRequest request)
{
return base.GetWebResponse(request);
}
}

关于.net - 如何覆盖 GetWebResponse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5490298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com