7

我在尝试使用 SAP ws 时遇到 .net 问题,元素系统导致此错误

  error CS0120: An object reference is required for the nonstatic field, method, or property 'Bapiret2.System'

他们是这里描述的解决方案,但我想找到一个不需要更改 WSDL 的解决方案

http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2009/04/17/system-namespace-conflict-in-sap-web-services.aspx

或者这个, http://ddkonline.blogspot.com/2009/09/sap-to-microsoft-net-integration-fixes.html

您对此有任何经验以及如何解决它吗?

谢谢三木

4

2 回答 2

7

由于此问题是由.NET 和 SAP 中的命名冲突引起的,在不更改 SAP 配置的情况下解决此问题的另一种解决方法:</p>

在 Reference.cs 中为 System.XML 添加别名,如下所示

using SysXml = System.Xml;

然后,将所有报错的System.Xml替换为“SysXml”如下(请注意“SysXml”这个词在添加服务后原来是“System.Xml”,导致了这个问题)

/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=SysXml.Schema.XmlSchemaForm.Unqualified)]
public string Type {
    get {
        return this.typeField;

    set {
        this.typeField = value;
    }
}
于 2016-08-25T02:18:07.300 回答
5

问题是因为 Windows 和 BAPI 中的系统命名空间。这可以通过在所有给出上述错误的调用之前添加 global:: 来解决。这不涉及编辑 WSDL。

参考:在您上面提到的页面之一上发表评论,并链接该评论所指的内容。

于 2012-09-26T09:34:57.000 回答