2013-06-12 15 views
6

Desidero restituire un elenco di alcuni spazi pubblicitari da un servizio Web. Sembra che il servizio Web costringa la lista a tornare come array.Restituzione di un elenco di tipi dal servizio Web

Nelle seguenti 3 linee della porzione di matrice funziona, ma non riesco a capire come lanciare di nuovo a una lista di tipo "InventoryToSync"

List<InventoryToSync> inventoryList = new List<InventoryToSync>(); 
Array theArray = myIcsSyncService.ReturnInventoryToSyncDictionary(); 
inventoryList = myIcsSyncService.ReturnInventoryToSyncDictionary().Cast<InventoryToSync>(); 

Ecco il mio metodo Web:

[WebMethod] 
    [System.Xml.Serialization.XmlInclude(typeof(InventoryToSync))] 
    public List<InventoryToSync> ReturnInventoryToSyncDictionary() 
    { 
     Inventory inventory = new Inventory(); 

     return inventory.GetInventoryList(); 
    } 

Ho provato a forzare il tipo con XmlInclude, ma non ci sono ancora.

Come forzare il servizio Web a restituire un elenco di InventoryToSync o come riconvertire l'array in Inventory to Sync.

+1

ASMX è una tecnologia legacy, e non deve essere utilizzato per un nuovo sviluppo. WCF dovrebbe essere utilizzato per tutti i nuovi sviluppi di client e server di servizi Web. Un suggerimento: Microsoft ha ritirato il [Forum ASMX] (http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/threads) su MSDN. –

+1

Grazie Giovanni. Sono pronto per ritirarlo anch'io;) – pStan

risposta

7

Nella finestra di dialogo "Aggiungi riferimento servizio", fare clic su "Avanzate" e scegliere di utilizzare List<T> come tipo di raccolta.

enter image description here

+0

Ciao John, potresti chiarire il 'Tipo di collezione List ' per noi? Non posso vederlo. –

+1

Viene visualizzato come 'System.Collections.Generic.List'. Grazie per la modifica impressionante. –

Problemi correlati