xamarin 无法从程序集Simple.OData.Client.V3.Adapter加载OData适配器

evrscar2  于 2023-09-28  发布在  其他
关注(0)|答案(2)|浏览(120)

我有下面的代码,我希望从Northwind服务获得oData(Simple.oData.Client)。一旦用户点击点击按钮,它就会触发oData调用。在控制台上打印出before await消息;但是,它不打印after await消息。这意味着在try-catch块中的await操作中有一些不正确的东西。我想知道如何处理这个问题。我使用Xamarin.iOS平台。

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:出现一个或多个错误-> System.InvalidOperationException:无法从程序集Simple.OData.Client.V3.Adapter加载OData适配器-> System.IO.FileNotFoundException:未能加载文件或程序集“Bulletin”或它的某一个依赖项。系统找不到指定的文件。

gjmwrych

gjmwrych1#

对于那些需要知道这个问题是如何解决的人,这里是Simple.OData.Client github源代码所有者的详细解释。
https://github.com/object/Simple.OData.Client/issues/53
我在我的Main.cs中添加了一行代码Simple.OData.Client.V3Adapter.Reference(),它工作起来很有魅力。

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

5vf7fwbs2#

在这一周的大部分时间里都输给了这一个。我想我应该分享一下我稍微不同的决心。
我一直在将netcoreapp3.1升级到net7
尽管没有编译时间错误,我还是错过了Microsoft.OData.Core NuGet包。代码中没有任何地方引用它,但是将它添加到有问题的项目中解决了我的错误
System.InvalidOperationException: Unable to load OData adapter from assembly Simple.OData.Client.V4.Adapter

相关问题