2015-04-08 3 views
4

У меня есть следующий код, который я ожидаю получить oData (Simple.oData.Client) от Northwind. Как только пользователь нажимает кнопку «Click», он запускает вызов oData. Он выводит сообщение before await на консоль, однако оно не печатает сообщение after await. Это означает, что в блоке try-catch есть что-то не так. Я хотел бы знать, как справиться с этой проблемой. Я использую платформу Xamarin.iOS.Невозможно загрузить адаптер OData из сборки Simple.OData.Client.V3.Adapter

async partial void Click_TouchUpInside (UIButton sender) 
    { 
     var client= new ODataClient("http://services.odata.org/Northwind/Northwind.svc/"); 

     Console.WriteLine("before await"); 

     try { 
     var packages = await client 
      .For("Customers"). 
      FindEntriesAsync(); 
     } 
     catch(AggregateException e) { 
      Console.WriteLine(e); 
      Console.WriteLine(e.InnerException); 
     } 
    Console.WriteLine("after await"); 
    } 

Вот сообщение об ошибке деталь: Произошла одна или несколько ошибок ---> System.AggregateException::

System.AggregateException произошла одна или несколько ошибок ---> системы. InvalidOperationException: невозможно загрузить адаптер OData из assembly Simple.OData.Client.V3.Adapter ---> System.IO.FileNotFoundException: Не удалось загрузить файл или сборку 'Simple.OData.Client.V3.Adapter' или один его зависимостей. Система не может найти указанный файл.

+0

где вы получаете Simple.oData.Client от - Nuget, Component Store или где-то еще? – Jason

+0

@ Джейсон, я получил его от Нугета. Я делаю неправильно? – casillas

ответ

7

Кому необходимо знать, как эта проблема была устранена, вот подробное объяснение от владельца исходного кода github Simple.OData.Client.

https://github.com/object/Simple.OData.Client/issues/53

Я добавил одну строку кода Simple.OData.Client.V3Adapter.Reference() в моем Main.cs, и он работает как шарм.

static void Main (string[] args) 
{ 
    Simple.OData.Client.V3Adapter.Reference(); 
    UIApplication.Main (args, null, "AppDelegate"); 
} 
+4

Я пробовал это, но я все еще получаю ошибку. Я использую V4Adapter –

+0

Спасибо, это помогло мне, хотя я добавил V4Adapter.Reference() вместо этого, но он решил эту проблему для меня. –

+0

Я удалил из nuget пакет simple.odata и переустановил. – Jason

Смежные вопросы