Ok, voici le scénario ! J'ai un objet Personne qui a un objet Adresse. La personne a une liste d'adresses.
Maintenant, je veux itérer à travers les propriétés de la personne et quand j'arrive à une liste, je veux créer un objet de l'objet Adresse. Comment puis-je faire cela ?
Mise à jour :
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
private List<Address> _addresses = new List<Address>();
public void AddAddress(Address address)
{
_addresses.Add(address);
address.Person = this;
}
public List<Address> Addresses
{
get { return _addresses; }
set { _addresses = value; }
}
}
var properties = item.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach(var property in properties)
{
var propertyType = property.PropertyType;
if (!propertyType.IsGenericType) continue;
var obj = Activator.CreateInstance(propertyType);
var genericType = obj.GetType().GetGenericTypeDefinition();
Console.WriteLine(obj.GetType().Name);
var type = property.GetType();
}
Le code de réflexion ci-dessus me renvoie une liste mais elle est de type Liste. Je veux le type générique qui est adresse.