我有下面的代码,我希望从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”或它的某一个依赖项。系统找不到指定的文件。
2条答案
按热度按时间gjmwrych1#
对于那些需要知道这个问题是如何解决的人,这里是
Simple.OData.Client
github源代码所有者的详细解释。https://github.com/object/Simple.OData.Client/issues/53
我在我的
Main.cs
中添加了一行代码Simple.OData.Client.V3Adapter.Reference()
,它工作起来很有魅力。5vf7fwbs2#
在这一周的大部分时间里都输给了这一个。我想我应该分享一下我稍微不同的决心。
我一直在将
netcoreapp3.1
升级到net7
尽管没有编译时间错误,我还是错过了
Microsoft.OData.Core
NuGet包。代码中没有任何地方引用它,但是将它添加到有问题的项目中解决了我的错误System.InvalidOperationException: Unable to load OData adapter from assembly Simple.OData.Client.V4.Adapter