Служба SOAP — невозможно преобразовать исходный тип [Something[]] в целевой тип [Something]C#

Место общения программистов C#
Ответить
Anonymous
 Служба SOAP — невозможно преобразовать исходный тип [Something[]] в целевой тип [Something]

Сообщение Anonymous »

Я использую стороннюю службу SOAP в своем консольном приложении DotNetCore C#
Для этого я добавил ссылку на службу, импортировав WSDL
(Добавить -> Подключенная служба -> Веб-служба WCF)
Служба предоставляет метод Order, который принимает параметр OrderRequest

Код: Выделить всё

OrderResponse Order(OrderRequest request);
И OrderRequest определяется следующим образом

Код: Выделить всё

public partial class OrderRequest
{
private string fMethod;
private KVPfield[] searchFields;
}
В объекте KVPfield нет ничего особенного, он просто выглядит так:

Код: Выделить всё

public partial class KVPfield
{
private string fKey;
private string fValue;
}
По моему мнению, ЛЕГКО, просто определите массив полей KVP и назначьте его OrderRequest

Код: Выделить всё

var orderReq = new OrderRequest();
orderReq.fMethod = "save";

orderReq.searchFields= new KVPfield[] {
new KVPfield() { fKey = "EPID", fValue = "XY111359" },
new KVPfield() { fKey = "VSN", fValue = "HTP000157A" }
};
Но теперь, когда я выполняю метод
var resp = svc.Order(orderReq);
Но затем возникает следующая ошибка

System.ServiceModel.CommunicationException: 'Произошла ошибка при
сериализации тела сообщения OrderRequest:
'CodeGenError(IsNotAssignableFrom): невозможно преобразовать исходный тип
[svc.KVPfield[]] в целевой тип [svc.KVPfield].'.

Почему, если мой WSDL запрашивает МАССИВ полей KVP, он ожидает одно поле KVP?
Это как-то связано с как я определяю свое поле KVP[] или что-то во внутренностях wsdl?

Подробнее здесь: https://stackoverflow.com/questions/792 ... e-somethin
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»