xamarin 表单 + 数据
xamarin form + odata
任何人都可以告诉我如何使用 Simple.Odata.Client 和 xamarin 表单从 OData 服务检索数据吗?
我尝试以下方式:
在便携式项目中
public App()
{
GetDocument();
}
public async void GetDocument()
{
String result = await ODataServiceAgent.GetDocuments(skipCount);
}
在 OData 服务调用中
public static async Task<string> GetDocuments(int skipCount)
{
string json = string.Empty;
try
{
var client1 = new ODataClient(new ODataClientSettings(ServiceConstant.sURL_Base, new System.Net.NetworkCredential(ServiceConstant.NCUserName, ServiceConstant.NCPassword))
{
IgnoreResourceNotFoundException = true,
//OnTrace = (x, y) => Console.WriteLine(string.Format(x, y)),
});
string commands = string.Format(ServiceConstant.sURL_WholeDataByPagging, ServiceConstant.servicePaggingTopCount, skipCount);
IEnumerable<IDictionary<string, object>> configs = client1.FindEntriesAsync(commands).Result;
List<IDictionary<string, object>> configList = ((List<IDictionary<string, object>>)configs.ToList());
json = JsonConvert.SerializeObject(configList);
}
catch (Exception ex)
{
string excepstionMessage = ex.Message;
}
return json;
}
虽然实际呼叫是使用 "FindEntriesAsync" 线路进行的,但它没有响应
它在对结果的调用中。一般来说,在异步方法上调用 Result 或 Wait 不是一个好主意:它 可能 在某些环境中工作(如桌面 Windows)但它会在其他环境中死锁,尤其是移动那些。所以只是等待它,不要做 .Result 或 .Wait.
任何人都可以告诉我如何使用 Simple.Odata.Client 和 xamarin 表单从 OData 服务检索数据吗?
我尝试以下方式:
在便携式项目中
public App()
{
GetDocument();
}
public async void GetDocument()
{
String result = await ODataServiceAgent.GetDocuments(skipCount);
}
在 OData 服务调用中
public static async Task<string> GetDocuments(int skipCount)
{
string json = string.Empty;
try
{
var client1 = new ODataClient(new ODataClientSettings(ServiceConstant.sURL_Base, new System.Net.NetworkCredential(ServiceConstant.NCUserName, ServiceConstant.NCPassword))
{
IgnoreResourceNotFoundException = true,
//OnTrace = (x, y) => Console.WriteLine(string.Format(x, y)),
});
string commands = string.Format(ServiceConstant.sURL_WholeDataByPagging, ServiceConstant.servicePaggingTopCount, skipCount);
IEnumerable<IDictionary<string, object>> configs = client1.FindEntriesAsync(commands).Result;
List<IDictionary<string, object>> configList = ((List<IDictionary<string, object>>)configs.ToList());
json = JsonConvert.SerializeObject(configList);
}
catch (Exception ex)
{
string excepstionMessage = ex.Message;
}
return json;
}
虽然实际呼叫是使用 "FindEntriesAsync" 线路进行的,但它没有响应
它在对结果的调用中。一般来说,在异步方法上调用 Result 或 Wait 不是一个好主意:它 可能 在某些环境中工作(如桌面 Windows)但它会在其他环境中死锁,尤其是移动那些。所以只是等待它,不要做 .Result 或 .Wait.