2013-06-12 5 views
6

Ich möchte eine Liste von einigen Inventar von einem Webdienst zurückgeben. Es scheint, als zwinge der Web-Service die Liste dazu, als Array zurückzukehren.Zurückgeben einer Liste des Typs von Web-Service

In den folgenden drei Zeilen der Array-Teil funktioniert, aber ich kann nicht herausfinden, wie es zu einer Liste vom Typ „InventoryToSync“ zurück zu werfen

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

Hier meine Web-Methode ist:

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

     return inventory.GetInventoryList(); 
    } 

Ich habe versucht, den Typ mit XmlInclude zu erzwingen, aber immer noch nicht gehen.

Wie erzwinge ich, dass der Webdienst eine Liste meines InventoryToSync zurückgibt, oder wie wandle ich das Array zurück in Inventory, um zu synchronisieren.

+1

ASMX ist eine Legacy-Technologie und nicht für Neuentwicklung verwendet werden soll. WCF sollte für alle Neuentwicklungen von Web-Service-Clients und -Servern verwendet werden. Ein Hinweis: Microsoft hat das [ASMX Forum] (http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/threads) auf MSDN zurückgezogen. –

+1

Danke John. Ich bin bereit, es auch in Rente zu gehen;) – pStan

Antwort

7

Klicken Sie im Dialogfeld "Service-Referenz hinzufügen" auf "Erweitert" und wählen Sie List<T> als Sammlungsart.

enter image description here

+0

Hallo John, könnten Sie bitte die 'List ' Sammlungsart für uns klären? Ich kann es nicht sehen. –

+1

Es wird als 'System.Collections.Generic.List' angezeigt. Danke für den tollen Schnitt. –

Verwandte Themen