【问题标题】:Error adding a service reference to Visual Studio via WSDL通过 WSDL 添加对 Visual Studio 的服务引用时出错
【发布时间】:2011-03-04 13:31:04
【问题描述】:

我已获得一个 WSDL,其中包含所有方法请求和响应,以及我需要用于创建一些 Web 方法的所有对象。

我已经成功地将 WSDL 添加为“服务引用”,我可以看到方法和结构并可以实例化它们。这一切似乎都在那里。但是,我有一个问题:添加 WSDL 后项目将无法构建。这是我在 Visual Studio 尝试编译 Reference.cs 时收到的错误消息:

"错误2类型名称'ServiceReference1'在类型中不存在 'WSPELab.WSPELab' C:\Users\JJ\Documents\Visual Studio 2008\项目\WSPELab\WSPELab\服务 References\ServiceReference1\Reference.cs 21 111 WSPELabSLN

是否有可能因为我的命名空间错误而收到此错误消息?

最后,还有一个问题:添加 WSDL 后,我可以直接使用它包含的结构吗?还是它们只是让我实施的“清单”?

【问题讨论】:

标签: visual-studio web-services visual-studio-2008 namespaces wsdl


【解决方案1】:

WSDL 是一个机器可读的文件,它描述了 Web 服务公开的方法和类型。许多 IDE,包括 Eclipse 和 Visual Studio,可以导入这些并创建与 WSDL 中给出的定义相匹配的编程语言类。

例如,在 Visual Studio C# 项目中导入 WSDL 将创建一个包含这些定义的 Reference.cs 文件。您必须像对任何类一样实例化和调用这些定义。

var webServiceReference = new WsdlNamespace.ClassDefinedInWsdl();
WsdlNamespace.ParamClassDefinedInWsdl dataToGet;
WsdlNamespace.ReturnCodeTypeDefinedInWsdl retCode = webServiceReference.MethodDefinedInWsdl("params expected by method", out dataToGet);
if (retCode == WsdlNamespace.ReturnCodeValueMeaningAllIsWell)
{
    // use properties of dataToGet
}

提供更多细节需要向我们展示实际的 WSDL。

【讨论】:

  • 谢谢!我朝着正确的方向前进,但出现了一些奇怪的命名空间错误。我开始了一个新项目并添加了引用,我现在可以使用所有现有的类。再次感谢!
猜你喜欢
  • 2013-07-25
  • 1970-01-01
  • 2015-09-10
  • 2014-03-12
  • 2011-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-12
相关资源
最近更新 更多