Пользовательская метка, возвращающая значение null для всех полей с использованием NetSuite WSDL на .NET Core 3.1

#c# #visual-studio #.net-core #wsdl #netsuite

#c# #visual-studio #.net-core #wsdl #netsuite

Вопрос:

Я использую NetSuite 2020.2 WSDL через Visual Studio 2019 на C # .NET Core 3.1. Он подключен с помощью служб, подключенных к WCF.

При попытке получить доступ к любому полю «CustomLabel» оно всегда возвращает null:

 ItemSearchRow _item = (ItemSearchRow)row;
ItemSearchRowBasic itemBasic = _item.basic;
Console.WriteLine("Price: "   itemBasic.basePrice[0].searchValue   "tCustom Label: "   itemBasic.basePrice[0].customLabel);
  

В результате получается «Цена: 26.66 Пользовательская метка:»

Ответ SOAP действительно включает это поле, например:

 <platformCommon:basePrice>
<platformCore:searchValue>26.66</platformCore:searchValue>
<platformCore:customLabel>price_rrp</platformCore:customLabel>
</platformCommon:basePrice>
  

При выполнении того же кода.NET Framework работает так, как ожидалось.

Кто-нибудь еще сталкивался с этим или знает, как это исправить?

Спасибо, Крис

Ответ №1:

Оказывается, это ошибка, из-за которой WCF неправильно преобразует WSDL. Нет ETA для исправления.

Обходным путем для всех, кто заинтересован, было создание настраиваемого поля валюты, ссылающегося на pricelevel в виде формулы. Затем я мог бы получить доступ к этому через customlist.

Спасибо, Крис