Search code examples
c#wcf

How to pass list to wcf?


I have class contain Data member:

[DataContract]
public class InventoryTransfer
{     
    [DataMember]public List<InventoryTransferLine> Line { get; set; }   
}

[DataContract]
public classInventoryTransferLine
{
    [Data Member(Order = 1)]public string Item Code { get; set; }
    [Data Member(Order = 2)]public Decimal Quantity { get; set; }
}

this is client code that i call above wcf service:

    T.InsertTransactionClient oClient = new T.InsertTransactionClient();
    T.InventoryTransfer oInventoryTransfer = new T.InventoryTransfer();
    T.InventoryTransferLine oInventoryTransferLine = newT.InventoryTransferLine();

    oInventoryTransfer. Line = new List<T.InventoryTransferLine>();
    oInventoryTransferLine.ItemCode = "1";
    oInventoryTransfer.Line.Add(oInventoryTransferLine);
    oInventoryTransferLine.ItemCode = "2";      
    oInventoryTransfer.Line.Add(oInventoryTransferLine);
    oClient.InventoryTransfer(oInventoryTransfer);

so I need the out put:

oInventoryTransfer.Line[0].ItemCode.ToString(); need output 1 but i got 2. oInventoryTransfer.Line[1].ItemCode.ToString(); out put is 2


Solution

  • You need to create two separate T.InventoryTransferLine instead of updating one after it is inserted.

    Inserting an object into a List inserts a reference to that object instead of a copy of it.

    You should also check out this question.