Не удается передать List<Guid> в качестве параметра веб-службе в SL3
У меня есть следующий веб-метод:
namespace MessageService{
...
[WebMethod]
public ServiceReturnCodes SetMsg(List<Guid> Ids, DateTime processDateTime)
{
BL.SetMsg(Ids, DateTime.Now);
}
}
Но когда я вызываю этот метод:
public List<Guid> Ids = new List<Guid>();
...
service.SetMsg(Ids, DateTime.Now);
Я получаю следующую ошибку: Аргумент '1': невозможно преобразовать из 'System.Collections.Generic.List' в 'MessageWeb.MessageService.ArrayOfGuid'. Я не могу понять, что ArrayOfGuid
и почему он пытается конвертировать.
4 ответа
Я просто мог использовать ArrayOfGuid
введите, чтобы создать список и передать его в качестве параметра:
ArrayOfGuid Ids = null;
Ids.Add(Id);
....
service.SetMsg(Ids, DateTime.Now);
Привет: можно добавить метод AddRange для добавления элементов в список и из списка:
[WebMethod]
public ServiceReturnCodes SetMsg(List<Guid> Ids, DateTime processDateTime)
{
ArrayOfGuid _Ids = new List<Guid>();
_Ids.AddRange(Ids);
BL.SetMsg(_Ids, DateTime.Now);
}
Может быть, вы должны преобразовать его в массив с помощью
service.SetMsg(Ids.ToArray(), DateTime.Now);
Я верю, что вы обнаружите, что ArrayOfGuid
является List<Guid>
, Посмотрите в Reference.cs. Вот что у меня:
public class ArrayOfGuid : System.Collections.Generic.List<System.Guid> {}
До сих пор я мог использовать функцию частичного класса, чтобы немного упростить передачу List<Guid>
:
используя Систему; using System.Collections.Generic;
namespace ConsoleApplication1.MessageServiceProxy
{
partial class ArrayOfGuid
{
public ArrayOfGuid()
{
}
public ArrayOfGuid(IEnumerable<Guid> guids) : base(guids)
{
}
}
}
Это позволяет вам пройти new ArrayOfGuid(yourListOfGuid)
,