0

WP7アプリケーションでHttpWebRequestを作成する次のコードがあります。私はSilverlight 5に設定されたターゲットフレームワークを持つ "Silverlight Unit Test Application"というユニットテストアプリケーションからこのコードを呼び出そうとしています。私はJeff WilcoxのブログからWP7.5マンゴーベータテストアセンブリを手に入れました:WP7 AppのHttpWebRequestがNullReferenceExceptionをスローする

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

上記のコードでは、要求を作成する行にNullReferenceExceptionがスローされます。スタックトレースは価値のあるものを提供しません。

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

答えて

2

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

  1. Windows PhoneのSilverlightアプリケーションプロジェクトを作成します
  2. 実際のアプリケーションプロジェクトへ
  3. ダウンロードして参照を参照を追加しますSL Unit Testing assemblies for Mango
  4. を:WPテストプロジェクトを作成するには

    Loadedイベントハンドラのメインページへ:

_

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); 

しかし、私はちょうど再起動をお勧めしたいです。

+0

ええ、私はこれを設定するように頼んだ別のブログ記事を見つけることになりました。誰かが新しいプロジェクトウィンドウのプロジェクトオプションにそのコードをブートストラップしたのはうれしいことです。 :) – sohum

関連する問題