Simple.OData.Client Silverlight 5 失败
Simple.OData.Client fails with Silverlight 5
下面的一小段代码在控制台应用程序中运行良好,但在 Silverlight 5 应用程序(我需要它!)中,它因抛出 NotSupportedException 而失败:
var client = new ODataClient("http://MYSERVER:9000/OData_v4/ProductionDb/");
try
{
//This statement throws in Silverlight 5 but not in a .NET 4.5 Console application!!??
var Meter = await client
.For("MyEntityName")
.Top(1)
.FindEntryAsync();
foreach (var entry in Meter)
Debug.WriteLine(string.Format("{0}: {1}", entry.Key, entry.Value));
}
catch (NotSupportedException ex)
{
Debug.WriteLine(string.Format( "Exception {0}: {1} ", ex.GetType().ToString(), ex.Message ));
}
为什么它在 Silverlight 中不起作用?根据文档,它应该可以直接与 Silverlight 一起使用....?
我使用 NuGet 安装了 Simple.OData.Client 版本。 4.13.0(=最新稳定版)进入我的 Visual Studio 2015 Silverlight 项目。
试试这个:
var Meter = await client
.For<MyEntityName>()
.Top(1)
.FindEntryAsync();
找到here
将以下代码添加到您的 MainPage 构造函数中,紧跟在 InitializeComponent() 之后:
HttpWebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
HttpWebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp);
这应该可以解决问题(至少如果我能够 运行 您的代码进行这些更改)。非常令人沮丧,但与 OData 库无关。您可以在此处阅读有关此问题的更多信息:https://mattduffield.wordpress.com/2011/12/11/silverlight-specified-method-is-not-supported-on-this-request/
下面的一小段代码在控制台应用程序中运行良好,但在 Silverlight 5 应用程序(我需要它!)中,它因抛出 NotSupportedException 而失败:
var client = new ODataClient("http://MYSERVER:9000/OData_v4/ProductionDb/");
try
{
//This statement throws in Silverlight 5 but not in a .NET 4.5 Console application!!??
var Meter = await client
.For("MyEntityName")
.Top(1)
.FindEntryAsync();
foreach (var entry in Meter)
Debug.WriteLine(string.Format("{0}: {1}", entry.Key, entry.Value));
}
catch (NotSupportedException ex)
{
Debug.WriteLine(string.Format( "Exception {0}: {1} ", ex.GetType().ToString(), ex.Message ));
}
为什么它在 Silverlight 中不起作用?根据文档,它应该可以直接与 Silverlight 一起使用....?
我使用 NuGet 安装了 Simple.OData.Client 版本。 4.13.0(=最新稳定版)进入我的 Visual Studio 2015 Silverlight 项目。
试试这个:
var Meter = await client
.For<MyEntityName>()
.Top(1)
.FindEntryAsync();
找到here
将以下代码添加到您的 MainPage 构造函数中,紧跟在 InitializeComponent() 之后:
HttpWebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
HttpWebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp);
这应该可以解决问题(至少如果我能够 运行 您的代码进行这些更改)。非常令人沮丧,但与 OData 库无关。您可以在此处阅读有关此问题的更多信息:https://mattduffield.wordpress.com/2011/12/11/silverlight-specified-method-is-not-supported-on-this-request/