“使用OData feed时,无法找到类型或命名空间名称`Packages'

时间:2015-04-07 21:47:21

标签: c# xamarin odata

我想测试以下简单示例,但要获得突出显示的错误。我有以下命名空间using Simple.OData.Client

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

您似乎已经复制了herehere中的代码,其中声明两者都是示例,而不是工作代码。

为了将Feed反序列化为类,该类必须存在。您使用的OData客户端库与NuGet没有任何关联,它只是以其feed为例。

在后一个链接中,还提到了:

  

Simple.OData.Client不会生成代理类,但您应该能够通过导航到OData源并检查其元数据,轻松地为计划使用的实体添加类。使用URL $ metadata获取元数据描述。如果您有Visual Studio,则可以通过创建项目并向其添加服务引用来创建代理。然后你可以使用生成的类。

从网址http://www.nuget.org/api/v1/$metadata,您应该能够创建一个服务引用(您不会使用代理),它将生成V1FeedPackage类型,然后您可以使用它:

var packages = await client
    .For<V1FeedPackage>()
    .Filter(x => x.Title == "Simple.OData.Client")
    .FindEntriesAsync();

foreach (var package in packages)
{
    Console.WriteLine(package.Title);
}