J'essaie de valider qu'un paramètre est à la fois un paramètre de sortie et étend une interface (ICollection). L'api de réflexion ne semble pas vouloir me donner le type "réel" du paramètre, seulement celui avec un "&" à la fin qui n'évaluera pas correctement dans une instruction IsAssignableFrom. J'ai écrit du code C# qui fonctionne, mais il semble qu'il devrait y avoir une meilleure façon de le faire..NET Reflection - Comment obtenir le type "réel" de dehors ParameterInfo
bool isCachedArg(ParameterInfo pInfo)
{
if (!pInfo.IsOut)
return false;
string typeName = pInfo.ParameterType.FullName;
string nameNoAmpersand = typeName.Substring(0, typeName.Length - 1);
Type realType = Type.GetType(nameNoAmpersand);
if (!typeof(ICollection).IsAssignableFrom(realType))
return false;
return true;
}
Y at-il un moyen d'obtenir realType sans recharger le type de son nom de chaîne? Je suis toujours sur .NET 2.1.
Merci, Randy
+1 "Un paramètre out est 'par ref'". –
Vous avez absolument raison, j'ai raté la partie par ref dans ma réponse :-) +1. – driis
Fonctionne très bien. Je vous remercie! – randy909