Ich versuche zu validieren, dass ein Parameter sowohl ein out-Parameter ist und erweitert eine Schnittstelle (ICollection). Die Reflexion api scheint mir nicht den "echten" Typ des Parameters geben zu wollen, sondern nur den mit einem "&" am Ende, der in einer IsAssignableFrom-Anweisung nicht korrekt ausgewertet wird. Ich habe einen C# -Code geschrieben, der funktioniert, aber es scheint, als sollte es einen besseren Weg geben, dies zu tun..NET Reflection - Wie bekomme ich "echten" Typ aus 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;
}
Gibt es eine Möglichkeit, RealType zu erhalten, ohne den Type von seinem String-Namen neu zu laden? Ich bin immer noch auf .NET 2.1.
Danke, Randy
+1 "Ein out-Parameter ist 'by ref'". –
Du hast absolut recht, ich habe den by ref Teil in meiner Antwort verpasst :-) +1. – driis
Funktioniert gut. Vielen Dank! – randy909