Types dynamiques : Passer le type a une autre methode
Bonjour,
Alors voilà j'ai écrit une API pour synchroniser notre ERP avec Mgento pour ceux qui connaissent.
Tout fonctionnait bien jusqu’à hier ou j'ai reçu un message étrange dans mon appli et ça a fait complètement partir en sucette le serveur.
J'essai donc de développer un système de log des envoi et des réponses.
Actuellement mes appelles se font comme suit :
Code:
IRestResponse<Product> oResponse = (IRestResponse<Product>)oClient.Execute<Product>(oRequest);
Je souaiterait remplacer la methode Execute par une methode interne développée par moi.
J'ai donc essayer d'écrire une methode que j'appellerais comme ça :
Code:
Execute<Product>(oRequest);
qui exécuterais le code
Code:
1 2 3 4 5
|
private object Execute<T>(RestRequest _oRequest)
{
return oClient.Execute<T>(_oRequest);
} |
Malheureusement le compilateur dit :
Citation:
Error 2 'T' must be a non-abstract type with a public parameterless constructor in order to use it as parameter 'T' in the generic type or method 'RestSharp.RestClient.Execute<T>(RestSharp.IRestRequest)'
Qqun a-t-il une idée ?
Merci, a bientôt.
Edit :
Alors pour ce que ça intéresse la syntaxe suivante fait le boulo :
Code:
1 2 3 4 5
| private IRestResponse<T> Execute<T>(RestRequest _oRequest) where T : new()
{
IRestResponse<T> oResponse = oClient.Execute<T>(_oRequest);
return oResponse;
} |