private ODataCollectionValue ReadCollection(ODataMessageReader messageReader) { Contract.Assert(messageReader != null); ODataCollectionReader reader = messageReader.CreateODataCollectionReader(CollectionType.ElementType()); ArrayList items = new ArrayList(); string typeName = null; while (reader.Read()) { if (ODataCollectionReaderState.Value == reader.State) { items.Add(reader.Item); } else if (ODataCollectionReaderState.CollectionStart == reader.State) { typeName = reader.Item.ToString(); } } return(new ODataCollectionValue { Items = items, TypeName = typeName }); }