Неожиданный атрибут XML при использовании ODataLib v7

Я пытаюсь использовать пример сервиса OData v4 http://services.odata.org/V4/OData/OData.svc/ с новым OData v7. Когда я звоню ODataMessageReader.ReadMetadataDocument Я получаю UnexpectedXmlAttribute исключение. Можно ли игнорировать неподдерживаемые атрибуты и элементы?

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using Microsoft.OData;
using Microsoft.OData.Edm;

namespace ConsoleApplication19
{
    public class ODataResponseMessage : IODataResponseMessage
    {
        private readonly Dictionary<string, string> headers;
        private WebResponse _response;

        public ODataResponseMessage(WebResponse response)
        {
            this.headers = new Dictionary<string, string>();
            _response = response;
        }

        public IEnumerable<KeyValuePair<string, string>> Headers
        {
            get
            {
                return this._response.Headers.AllKeys.Select(headerName => new KeyValuePair<string,
                    string>(headerName, _response.Headers.Get(headerName)));
            }
        }
        public string GetHeader(string headerName)
        {
            if (headerName == null)
                throw new ArgumentNullException("headerName");

            return this._response.Headers.Get(headerName);
        }

        public int StatusCode { get; set; }

        public Uri Url { get; set; }

        public string Method { get; set; }

        public void SetHeader(string headerName, string headerValue)
        {
            headers[headerName] = headerValue;
        }

        public Stream GetStream()
        {
            return this._response.GetResponseStream();
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            HttpWebRequest request = WebRequest.CreateHttp("http://services.odata.org/V4/OData/OData.svc/$metadata");
            ODataResponseMessage metadataMessage = new ODataResponseMessage(request.GetResponse());

            ODataMessageReaderSettings readerSettings = new ODataMessageReaderSettings();
            readerSettings.MessageQuotas.MaxReceivedMessageSize = int.MaxValue;
            readerSettings.Validations = ValidationKinds.None;

            IEdmModel model;
            using (ODataMessageReader messageReader = new ODataMessageReader(metadataMessage, readerSettings))
            {
                model = messageReader.ReadMetadataDocument();
            }
        }
    }
}

Исключение, которое я получаю:

Microsoft.OData.ODataException не было обработано HResult=-2146233079
Сообщение = документ метаданных не может быть прочитан из содержимого сообщения. UnexpectedXmlAttribute: Атрибут 'ConcurrencyMode' не ожидался в данном контексте.: (1, 2043)

0 ответов

Другие вопросы по тегам