0

WP7 アプリケーションで HttpWebRequest を作成する次のコードがあります。このコードを、ターゲット フレームワークが Silverlight 5 に設定された「Silverlight Unit Test Application」タイプの Unit Test アプリケーションから呼び出そうとしています。Jeff Wilcox のブログから WP7.5 Mango Beta テスト アセンブリを入手しました。

public void SomeFunction()
{
    Uri uri = new Uri("http://www.google.com");
    HttpWebRequest request = HttpWebRequest.CreateHttp(uri);
    request.Method = "POST";
    ...
}

上記のコードでは、リクエストを作成する行がNullReferenceException. スタック トレースは何の価値も提供しません。

これは、SL テスト アプリケーションを使用しているために発生していますか?

4

1 に答える 1

2

Windows Phone 7.5 は Silveright 5 ではなく 4 を使用しますが、いずれのデスクトップ バージョンとも互換性がありません (単体テストは WP エミュレーターから実行する必要があります)。

WP テスト プロジェクトを作成するには:

  1. Windows Phone Silverlight アプリケーション プロジェクトを作成する
  2. 実際のアプリケーション プロジェクトへの参照を追加します
  3. Mango の SL Unit Testing アセンブリをダウンロードして参照する
  4. Loadedイベント ハンドラーの MainPage に次のコードを追加します。

_

var testPage = UnitTestSystem.CreateTestPage() as IMobileTestPage; 
BackKeyPress += (x, xe) => xe.Cancel = testPage.NavigateBack(); 
(Application.Current.RootVisual as PhoneApplicationFrame).Content = testPage; 

トピックでは、正しいハンドラーを再登録することで問題を解決できる場合があります。

WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp);

ただし、最初からやり直すことをお勧めします。

于 2012-04-30T00:46:17.607 に答える