C # Wcf Web API десериализация ответа - PullRequest
1 голос
/ 11 июня 2011

Я пытаюсь выполнить модульное тестирование веб-службы, которая возвращает не примитив. Ответ может быть либо xml, либо json, в зависимости от запроса. В моем тесте было бы здорово, если бы я мог десериализовать тело контента для одного из моих объектов. Вот некоторый код:

    [WebGet(UriTemplate = "{arg1}/{arg2}")]
    public HttpResponseMessage<MyType> GetSomethingCool(string arg1, long arg2)
    {    
         return new HttpResonseMessage<MyTpe>(new MyType());
    }

    public class MyType
    {
         public string Property1 { get; set; }
         public long Property2 { get; set; }
         public string Property3 { get; set; }
    }

И мой тест:

    [Test]
    public void MyTestForTheWebService_ReturnsText()
    {
          Service1 service = new  Service1 (_mockRepository.Object);
          HttpResponseMessage<MyType> result = service.GetSomethingCool("Something", **);

          Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);

          MyType resultContent = result.Content.ReadAs<MyType>(); // doesn't work
          Assert.AreEqual("expected value", resultContent .Property1);
          .....

Так что в принципе мне нужно иметь возможность превратить результат. Содержимое в MyType и не знаю как. Спасибо

1 Ответ

1 голос
/ 12 июня 2011

Попробуйте сделать:

MyType resultContent = (MyType)result.Content.ReadAs();

Я полагаю, вы столкнулись с известной ошибкой.

...