0

У меня есть следующий код для создания HttpWebRequest в моем приложении WP7. Я пытаюсь вызвать этот код из приложения Unit Test, которое относится к типу «Silverlight Unit Test Application» с целевой структурой, установленной в Silverlight 5. Я захватил тестовые сборки WP7.5 Mango Beta из блога Jeff Wilcox:WP7 App's HttpWebRequest throws 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 используется Silveright 4, а не 5, но он несовместим с версиями настольных систем (модульные тесты должны запускаться из эмулятора WP).

Чтобы создать тестовый WP проект:

  1. Создание проекта Windows Phone Silverlight приложения
  2. Добавить ссылку на ваш реальный прикладной проект
  3. Скачать и ссылки на SL Unit Testing assemblies for Mango
  4. Добавьте следующий код до MainPage в обработчике событий 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

Смежные вопросы