129 messaggi dal 31 ottobre 2003
mi sono accorto che un metodo di tipo IActionResult restituisce al client una response in cui l'entità prelevata non è in un oggetto di tipo data, result etc.. se non nei casi in cui si utilizza un metodo get di tipo convenzionale. cioè se incapsulo nella response un oggetto di tipo Product con proprietà id, Name

la response ha direttamente le proprietà id, Name.

Sto provando ad intercettare in un DelegatingHandler la response per manipolarla prima di inviarla al Client, ma non riesco ad estrarre l'entità Product dal tipo: System.Web.OData.Query.Expressions.SelectExpandBinder.SelectAllAndExpand<Demo.Models.Product>
129 messaggi dal 31 ottobre 2003
il valore del contenuto di response è di tipo SelectAllAndExpand nel caso in cui il client invia la richiesta con l'opzione expand, altrimenti è di tipo entity.
quindi con:

response.TryGetContentValue(out responseObject);
object _entity;
if (responseObject.GetType().Name == "SelectAllAndExpand`1") {
var entityProperty = responseObject.GetType().GetProperty("Instance");
_entity = (object)entityProperty.GetValue(responseObject);
} else
{
_entity = responseObject;
}

response = request.CreateResponse(System.Net.HttpStatusCode.OK, _entity);

ho la response con statuscode 406 (Not accetable)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.