J'essaie d'utiliser Reflection en C# pour déterminer à l'exécution le type d'objets dans une propriété de collection. Ces objets sont des entités générées par Entity Framework:Comment déterminer le type d'objets dans une collection en C#
Type t = entity.GetType();
PropertyInfo [] propInfo = t.GetProperties();
foreach(PropertyInfo pi in propInfo)
{
if (pi.PropertyType.IsGenericType)
{
if (pi.PropertyType.GetGenericTypeDefinition()
== typeof(EntityCollection<>))
// 'ToString().Contains("EntityCollection"))' removed d2 TimWi's advice
//
// ---> this is where I need to get the underlying type
// ---> of the objects in the collection :-)
// etc.
}
}
Comment identifier le type d'objets détenus par la collection?
EDIT: code mis à jour ci-dessus, en ajoutant la première requête de .IsGenericType pour le faire fonctionner
Quel est le problème que vous essayez de résoudre? Pourquoi avez-vous besoin de connaître les types dans la collection? Je suppose qu'ils ne sont pas tous du même type? – PatrickSteele
En fait, ils sont du même type. Je dois créer un nouvel objet et laisser l'utilisateur définir ses valeurs, mais je ne connais pas le type au moment du design. Donc, en utilisant la réflexion, j'obtiendrai et invoquerai le constructeur, pour finalement ajouter le nouvel objet à la collection appropriée. – Jay