OdataClient SaveChanges не работает и приводит к пустому Microsoft.OData.Client.DataServiceResponse

Я инкапсулировал контейнер odata из-за некоторых расширений:

public class Connector
{
    public string apiKey{get;set;}

    public  Connector(string apiKey)
    {
        this.apiKey = apiKey;
    }

    public Default.Container Get()
    {
        Default.Container container = new Default.Container(new Uri("http://documents.omnisoftonline.be/odata"));
        container.BuildingRequest += container_BuildingRequest;
        return container;
    }

    /// <summary>
    /// When fetching a single Document, you can enable this method to including fetch the binary data
    /// </summary>
    /// <param name="container"></param>
    /// <returns></returns>

    internal bool doIO = false;
    internal void container_BuildingRequest(object sender, BuildingRequestEventArgs e)
    {
        e.Headers.Add("X-ApiKey", apiKey);

        if (doIO && e.RequestUri.ToString().Contains("/Documents"))
        {
            e.RequestUri = new Uri(e.RequestUri.ToString() + (e.RequestUri.Query.Contains("?") ? "&" : "?") + "doIO=true");
        }


        this.container_BuildingRequest(sender, e);
    }
}

Когда я использую мой.dll (используя класс Connector), у меня появляется пустой результат ( statuscode = -1, без заголовков, ...) Обычно) выполняемый пустой OdataServiceResponse

Вот как я называю DLL

 documentsConnector.Get().AddToDocuments(docToCreate);
 var serviceResponse = documentsConnector.Get().SaveChanges(Microsoft.OData.Client.SaveChangesOptions.None); //tried several options
 foreach(var operationResponse in serviceResponse)
 {
      Console.WriteLine("Response: {0}", operationResponse.StatusCode); //no operationResponses, so this isn't executed
 }

Это может быть потому, что мой объект недействителен. Но странно, что я не вижу никакой проверки...

Любые мысли о том, как распространять SaveChanges() или предварительно проверить (перед отправкой) сущность? Сообщение не происходит (проверено с Fiddler)

1 ответ

Решение

Мой класс-оболочка каждый раз создавал новый контейнер, поэтому объекты удалялись из Default.Container

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