Не можете неявно преобразовать тип, вам не хватает приведения? Массивы, счетчики и веб-сервисы
Я пытаюсь отправить мыльное сообщение во внешнюю систему, эта система уже имеет предопределенные типы данных, которые я должен интегрировать в свой код, используя массивы и перечислители.
Моя проблема в том, что переменные перечислителя дают мне следующую ошибку:
Ошибка 1 Не удается неявно преобразовать тип "UpdateRatePacks._Default.Rate.AvailAppType" в "UpdateRatePacks.IService.AvailAppType?". Существует явное преобразование (вам не хватает приведения?)
Ошибка говорит, что она не может преобразовать тип на моей странице в тип на моем веб-сервисе, но структуры данных одинаковы. Я что-то пропустил?
Я везде искал эту ошибку, также искал счетчики в веб-сервисе, счетчики в массивах, преобразовывал счетчики в массивы, но ничего не помогало. Ошибка все та же.
Даже включил эту строку кода для разбора преобразования:
ureq.RatePackages[2].Rates[1].AvailabilityApplicationType = Rate.AvailAppType)Enum.Parse(typeof(Rate.AvailAppType), val);
Сложность этого кода в том, что он содержит перечислители в массивах, поэтому я не знаю, ошибаюсь ли я в перечислителе, или в самом массиве, или во всем веб-сервисе.
Это часть моего кода, который отправляет обновление в виде сообщения об ошибке
protected void SendSoapMessage()
{
Rate.AvailabilityApplicationType val = Rate.AvailAppType.SET;
ureq.RatePackages[1].Rates[0].AvailAppType = val;
ureq - метод UpdateRatePacks из веб-службы, которую я отправляю
Классы / Объекты, определенные ниже:
public class UpdateRatePacks
{
public string Username;
public string Password;
public UpdateRatePack[] RatePackages;
}
public class UpdateRatePack
{
public Int64 RatePackageId;
public Rate[] Rates;
}
public class Rate
{
public enum AvailAppType { SET , INCREASE, DECREASE };
}
Любой совет будет принята с благодарностью.
1 ответ
Похоже, что вы создаете свою собственную версию перечисления "В наличии AppType", когда она уже доступна в сгенерированном прокси-коде веб-службы, к которой вы обращаетесь. Используйте сгенерированную версию перечисления прокси-кода, что, я считаю, UpdateRatePacks.IService.AvailAppType?
как тип, а не определить свой собственный. Несмотря на то, что они имеют одинаковые имена перечислений, они находятся в отдельных пространствах имен, что делает их разными в глазах компилятора.
Надеюсь, это поможет.