J'ai un type de demande de base ..actionfilters de WebAPI, comment injecter une valeur lors de l'utilisation de différents types d'arguments qui héritent d'un type de base
classe RequestBase
{
public string inputId;
public string derivedid;
}
et types héritant ..
class RequestA : RequestBase
{
public string name;
}
et
class RequestB : RequestBase
{
public string color;
}
J'ai un service WebAPI, certaines actions prennent un paramètre d'entrée de Requesta, certains prennent RequestB
[HttpPost]
[MyFilter]
[ActionName("Process1")]
public HttpResponseMessage Process1(RequestA request)
{
//do something with request.derivedId
}
[HttpPost]
[MyFilter]
[ActionName("Process2")]
public HttpResponseMessage Process2(RequestB request)
{
//do something with request.derivedId
}
j'ai une ActionFilter qui prend la inputId de la demande et génère un derivedId
public override void OnActionExecuting(HttpActionContext actionContext)
{
RequestBase request = (RequestBase)actionContext.ActionArguments["request"];
string inputId = request.inputId;
string derivedId = inputId + "123";
// ?? somehow inject derivedId back into the actionContext so that my controller methods can access?
}
Comme mon commentaire indique ci-dessus, je voudrais remplir le champ derivedId et le rendre accessible à mes méthodes de contrôleur.
Merci à l'avance