在其中一个动作中,我做了类似于这样的事情
public HttpResponseMessage Post([FromBody] Foo foo)
{
.....
.....
var response =
Request.CreateResponse(HttpStatusCode.Accepted, new { Token = "SOME_STRING_TOKEN"});
return response;
}
还有更多像这样返回匿名类型实例并且它们运行良好的方法。
现在,我正在为它编写测试。我有
HttpResponseMessage response = _myController.Post(dummyFoo);
HttpResponseMessage
有一个叫做Content
的属性,并且还有一个 ReadAsAsync<T>()
方法。
我知道如果有一个具体的类型,我可以这样做:
Bar bar = response.Content.ReadAsAsync<Bar>();
但是我该如何访问返回的匿名类型?这可行吗?
我希望能够执行以下操作:
dynamic responseContent = response.Content.ReadAsAsync<object>();
string returnedToken = responseContent.Token;
但是我得到了一个错误,即类型对象的实例没有属性Token。尽管调试器显示responseContent有一个属性Token,但这种情况仍然发生。我理解为什么会出现这种情况,但我想知道是否有一种方法可以访问该属性。
谢谢
responseToken
的类型吗?可以使用((object)responseContent.GetType())
进行查看。谢谢。 - Matías FidemraizerSystem.Threading.Tasks.Task
1[System.Object]` - Professor Chaos