0

次の小さなコードは、コンソール アプリケーションではうまく機能しますが、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 プロジェクトに追加しました。

4

2 に答える 2

0

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/ をご覧ください。

于 2016-01-06T09:45:39.060 に答える