/// <summary> /// Reads the headers of a batch part or an operation. /// </summary> /// <returns>A dictionary of header names to header values; never null.</returns> internal ODataBatchOperationHeaders ReadHeaders() { Debug.Assert(this.batchEncoding != null, "Batch encoding should have been established on first call to SkipToBoundary."); ODataBatchOperationHeaders headers = new ODataBatchOperationHeaders(); // Read all the headers string headerLine = this.ReadLine(); while (headerLine != null && headerLine.Length > 0) { string headerName, headerValue; ValidateHeaderLine(headerLine, out headerName, out headerValue); if (headers.ContainsKeyOrdinal(headerName)) { throw new ODataException(Strings.ODataBatchReaderStream_DuplicateHeaderFound(headerName)); } headers.Add(headerName, headerValue); headerLine = this.ReadLine(); } return(headers); }
/// <summary> /// Reads the headers of a batch part or an operation. /// </summary> /// <returns>A dictionary of header names to header values; never null.</returns> internal ODataBatchOperationHeaders ReadHeaders() { Debug.Assert(this.batchEncoding != null, "Batch encoding should have been established on first call to SkipToBoundary."); // [Astoria-ODataLib-Integration] WCF DS Batch reader compares header names in batch part using case insensitive comparison, ODataLib is case sensitive ODataBatchOperationHeaders headers = new ODataBatchOperationHeaders(); // Read all the headers string headerLine = this.ReadLine(); while (headerLine != null && headerLine.Length > 0) { string headerName, headerValue; ValidateHeaderLine(headerLine, out headerName, out headerValue); if (headers.ContainsKeyOrdinal(headerName)) { throw new ODataException(Strings.ODataBatchReaderStream_DuplicateHeaderFound(headerName)); } headers.Add(headerName, headerValue); headerLine = this.ReadLine(); } return(headers); }