2012-01-05 43 views
0

將列表轉換爲數組我知道你不能在標準的.asmx webservice中返回一個通用列表。不過,我相信你可以返回一個數組[]。我的問題是將列表轉換爲數組。有人可以幫忙嗎? 我有一堆業務對象,已經返回一個類型列表,所以我不打算將原始對象轉換爲數組...[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 2012-01-05 18:17:55

回答

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

我想你的第一個建議return obj.ToArray(); 和我得到的錯誤不在該行,但在行上obj = dataAccess.GetBooksAll() - >不能隱式地將類型'Generic.List '轉換爲'Generic.List ' – midnightCoder 2012-01-05 18:30:41

+0

有你的問題。 BookDTO.Book與BookService.Book不同。你需要先弄清楚。 – Didaxis 2012-01-05 18:33:30

+0

我認爲你的權利我現在正在測試控制檯應用程序。謝謝! – midnightCoder 2012-01-05 18:38:54