Ссылка на веб-сервис SAP в проблеме конфликта имен .NET - PullRequest
3 голосов
/ 27 октября 2011

у меня проблема .net, когда я пытаюсь использовать SAP ws, система элементов вызывает эту ошибку

  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

Есть ли у вас какой-либо опыт с этим и как вы его решаете?

спасибо, мики

Ответы [ 2 ]

5 голосов
/ 26 сентября 2012

Проблема в том, что системное пространство имен в Windows и BAPI.Эту проблему можно решить, добавив global :: before перед всеми вызовами с указанными выше ошибками.Это не включает редактирование WSDL.

Ссылки: Комментируйте одну из страниц , которую вы упомянули выше, и ссылку , на которую ссылался комментарий.

3 голосов
/ 25 августа 2016

Так как эта проблема вызвана конфликтом имен в .NET и SAP, еще один обходной путь для этой проблемы без изменения конфигурации SAP:

Добавьте псевдоним для System.XML, как показано ниже в Reference.cs

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;
    }
}
...