J'ai une action pour rechercher des personnes dans un contrôleur, il retournera une liste de anonymouse:Impossible de convertir IEnumerable de type anonyme en IEnumerable <dynamic>?
[UnitOfWork]
[HttpGet, Route("api/Search/People")]
public virtual IHttpActionResult GetResult(string keyword)
{
// ...
var result = peopleList.Select(x => new
{
PersonId = x.Id.Value,
EmploymentNumber = x.EmploymentNumber,
FirstName = x.Name.FirstName,
LastName = x.Name.LastName,
Email = x.Email
});
return Ok(result);
}
Ci-dessous est le cas de test de la méthode:
[Test]
public void ShouldSearchPeople()
{
// Mocks...
var target = new PeopleSearchController(searchRepository, personRepository, new FakePermissionProvider());
// Error here
var result = (OkNegotiatedContentResult<IEnumerable<dynamic>>)target.GetResult("Ashley");
Assert.NotNull(peopleList);
// Other assert...
}
Puis-je obtenir l'erreur comme ci-dessous :
System.InvalidCastException: Unable to cast object of type
'System.Web.Http.Results.OkNegotiatedContentResult`1[System.Collections.Generic.IEnumerable`1[<>f__AnonymousType1e`5[System.String,System.String,System.String,System.Guid,System.String]]]'
to type
'System.Web.Http.Results.OkNegotiatedContentResult`1[System.Collections.Generic.IEnumerable`1[System.Object]]'.
Il semble IEnumerable avec classe unique ou anonyme sont OK pour un tel converti, mais avec IEnumerable anonyme ne fonctionne.
Comment faire une telle conversion? Merci.
peut-être 'var résultat = target.GetResult (" Ashley ") comme OkNegotiatedContentResult>;' fonctionne pour vous dans votre méthode de test ...? –
stefankmitph
@stefankmitph 'result' sera toujours nul. –