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 の両方に System 名前空間があるためです。これは、上記のエラーが発生するすべての呼び出しの前に global:: を追加することで対処できます。これには、WSDL の編集は含まれません。

参照:上記のいずれかのページにコメントし、そのコメントが参照したリンク

于 2012-09-26T09:34:57.000 に答える