gpt4 book ai didi

.net - 从 Excel 调用 .NET COM Web 服务包装器

转载 作者:行者123 更新时间:2023-12-04 22:11:10 26 4
gpt4 key购买 nike

我正在尝试从 Excel 2003 模块调用 Web 服务。
我实现它的方式是创建一个 .NET COM 库,其中包含我需要公开的所有类/方法。
当我尝试调用从 Excel 查询 Web 服务的方法时,执行只是在该行停止,没有任何错误。
可能与引用有关吗?我正在使用 Microsoft.Web.Services2.dll。我试过把它放在 C:\WINDOWS\SYSTEM32 - 不走运

最佳答案

我不确定我是否了解全部情况,但希望其中一些会有所帮助。我认为您有 Excel vba 通过 COM 接口(interface)调用 .NET,然后调用 SOAP Web svc。

你应该有正确的PIA由您的 .NET 程序集安装和引用。您的 COM 接口(interface)应如下所示:



[Guid("123Fooetc...")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface IBar
{
[DispId(1)]
void SomeMethod(Excel.Range someRange);
}

使用类似这样的类实现接口(interface):

[Guid("345Fooetc..")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("MyNameSpace.MyClass")]
public class MyClass : IBar
{
public void SomeMethod(Excel.Range someRange)
{...}
}

我要做的第一件事是在您的 .NET 代码中用一个真正简单的方法替换您的 Web 服务调用,以确保您的接口(interface)和互操作包装器工作正常。

一旦您的骨架工作正常,您可能需要考虑使用 HTTP 方法而不是使用 SOAP 来调用您的服务。例如,这是一个使用 HTTP GET 的简单调用:

string resource = yourUrl;
using (WebClient web = new WebClient())
{
web.Credentials = CredentialCache.DefaultCredentials;
someXml = web.DownloadString(resource);
}
return someXml; // or do something interesting with Excel range

关于.net - 从 Excel 调用 .NET COM Web 服务包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/172908/

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