2012-01-05 44 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