2012-01-05 1 views
0

Я понимаю, что вы не можете вернуть общий список в стандартном веб-сервисе .asmx. Однако я верю, что вы можете вернуть массив []. Моя проблема заключается в преобразовании списка в массив. Может кто-нибудь помочь? У меня есть куча бизнес-объекта, который уже возвращает список типов, поэтому я не открыт для преобразования исходных объектов в массивы ...Преобразовать список в массив для [WebMethod]

Вот мой WebMethod.

[WebMethod] 

    public Book[] GetBooksList() 

    { 

     List<Book> obj = new List<Book>(); 
     BookDA dataAccess = new BookDA();  

     obj = dataAccess.GetBooksAll().ToArray(); //error 1 here on conversion 

    return obj; //error 2 here 

    } 

Ошибка я получаю в 2 раза: Не удается неявно преобразовать тип BookDTO.Book [], чтобы GenericList

Не может неявно преобразовать тип GenericList в

+0

Возможный дубликат: http://stackoverflow.com/questions/4093754/webmethod-returning-generic-list – Didaxis

ответ

0

Поскольку вы уже объявили, что OBJ был список, не массив. Попробуйте вместо этого:

[WebMethod] 
public Book[] GetBooksList() 
{ 
    BookDA dataAccess = new BookDA(); 

    List<Book> obj = dataAccess.GetBooksAll(); 

    return obj.ToArray(); 
} 

Или еще лучше:

[WebMethod] 
public Book[] GetBooksList() 
{ 
    var dataAccess = new BookDA(); 

    var obj = dataAccess.GetBooksAll().ToArray(); 

    return obj; 
} 
+0

Я попробовал ваш 1-предложение return obj.ToArray(); , и я получаю ошибку не на этой строке, а на строке obj = dataAccess.GetBooksAll() -> Невозможно неявно преобразовать тип 'Generic.List ' в 'Generic.List ' – midnightCoder

+0

Well есть твоя проблема. BookDTO.Book - это не то же самое, что BookService.Book. Сначала вам нужно выпрямить это. – Didaxis

+0

Я думаю, что ты прав, я сейчас тестирую консольное приложение. Благодаря! – midnightCoder

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