2014-02-19 4 views
1

У меня есть эта ошибка о методе, который извлекает список. Вот код, в котором я использовал метод:Невозможно неявно преобразовать 'SoapService.Oferta []' в 'System.Collections.Generic.List <SoapService.Oferta>'

namespace MyApplication.Controllers 
{ 
    [Authorization.ClientAuthorization(Roles = "Admin", ViewName = "Error")] 
    public class ServiceController : Controller 
    { 
     public ActionResult GetOfertaSOAP() 
     { 
      SoapService.Service1Client client = new SoapService.Service1Client() 
      List<SoapService.Oferta> lst = client.GetOferta(); 
      return View("GetOfertaSOAP", lst); 
     } 

    } 
} 

Теперь ошибку, я получаю следующее:

Cannot implicitly convert type 'MyApplication.SoapService.Oferta[]' to 'System.Collections.Generic.List<MyApplication.SoapService.Oferta>' 

И коды определения метода это один:

public MyApplication.SoapService.Oferta[] GetOferta() 
{ 
    return base.Channel.GetOferta(); 
} 

В коде ошибка относится к client.GetOferta(); (это подчеркнутая часть). Что я должен сделать, чтобы исправить это?

ответ

0

Поскольку служба возвращает объект Oferta, вы можете использовать метод Enumerable.ToList<TSource>().

Как:

public ActionResult GetOfertaSOAP() 
    { 
     SoapService.Service1Client client = new SoapService.Service1Client() 
     List<SoapService.Oferta> lst = client.GetOferta().ToList(); 
     return View("GetOfertaSOAP", lst); 
    } 

Если таргетирования .NET < 3.5 вы можете использовать overloaded constructor of List<T> как:

public ActionResult GetOfertaSOAP() 
    { 
     SoapService.Service1Client client = new SoapService.Service1Client() 
     List<SoapService.Oferta> lst = new List<SoapService.Oferta>(client.GetOferta()); 
     return View("GetOfertaSOAP", lst); 
    } 
+0

Спасибо большое! Это решило мою проблему. – Phreak

Смежные вопросы