首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.Net中的Simple.OData.Client

.Net中的Simple.OData.Client
EN

Stack Overflow用户
提问于 2016-01-05 19:34:55
回答 2查看 3.7K关注 0票数 4

我正在使用一个将调用OData服务的应用程序。我试过Simple.OData.Client,但我不能让它工作。

下面是我尝试的代码

代码语言:javascript
复制
var client = new ODataClient("http://packages.nuget.org/v1/FeedService.svc/");
var packages = await client.FindEntriesAsync("Packages?$filter=Title eq 'Simple.OData.Client'");
foreach (var package in packages)
{
    Console.WriteLine(package["Title"]);
 }

我得到了这个错误

错误%1“await”运算符只能在异步方法中使用。请考虑使用“async”修饰符标记此方法,并将其返回类型更改为“Task”。

EN

回答 2

Stack Overflow用户

发布于 2016-01-20 07:20:08

代码语言:javascript
复制
using System;
using Simple.OData.Client;

namespace ODataClient
{
    class Program
    {
        static void Main(string[] args)
        {   
            new Manager().GetData();    
            Console.ReadLine();
        }
    }
}


using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace ODataClient
{
    public class Manager
    {
        private readonly Simple.OData.Client.ODataClient client;

        public Manager()
        {
            client = new Simple.OData.Client.ODataClient("http://packages.nuget.org/v1/FeedService.svc/");
        }

        public void GetData()
        {
            try
            {
                IEnumerable<IDictionary<string, object>> response = GetPackages().Result;

                foreach (var package in response)
                {
                    Console.WriteLine(package["Title"]);
                }

            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }

        private async Task<IEnumerable<IDictionary<string, object>>> GetPackages()
        {
            var packages = await client.FindEntriesAsync("Packages?$filter=Title eq 'Simple.OData.Client'");    
            return packages;

        }
    }
}
票数 3
EN

Stack Overflow用户

发布于 2018-04-18 23:57:14

这就更简单了。我们需要异步方法,因为我们不能将SimpleQuery关键字添加到Main或任何入口点方法中。

代码语言:javascript
复制
    static async void SimpleQuery()
    {
        var client = new ODataClient("http://blahb...lah.svc/");
        try
        {
            var packages = await client.FindEntriesAsync("Products");
            foreach (var package in packages)
            {
                Console.WriteLine(package);
            }
        } catch (Exception e)
        {
            Console.WriteLine("Simple Query " + e);
        }
    }
    static void Main(string[] args)
    {
        Console.WriteLine("Press Enter when the job is completed");
        SimpleQuery();
        Console.ReadLine();
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34610766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档