List<object.GetType()> = new List<object.GetType()>

08/02/2013

0

//tenho as seguintes classes

class Item
{
			
}

class Order
{
	public List<Item> Items { get; set; }
}


class Phone
{

}

class Seller
{
        public List<Phone> PhoneNumbers { get; set; }
}


class MyAdapter
{
	public List<Model> Read<Model>() where Model: new()
	{
		List<Model> result = new List<Model>
		Model obj = new Model();
		result.Add(obj);

		PropertyInfo[] properties = typeof(Model).GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
		foreach (PropertyInfo property in properties)
                {
        	        Type propertyType = property.PropertyType;
                	if (propertyType.IsGenericType)
                	{
                		Type propGenericType = propertyType.GetGenericTypeDefinition();
                		if (propGenericType == typeof(List<>))
                		{
                			Type listType = propertyType.GetGenericArguments()[0];
                			
                                        //o problema esta nesse ponto...
                			//preciso preencher a lista das propriedades filhas e depois atribuilas nos objetos pais

                			//chamada recursiva
                                        //chama Read mais uma vez, agora passando como generic o tipo da propriedade filha
					//esse ponto nao é reconhecido pelo compilador
                			List<listType> lst = this.Read<listType>();  
                                        property.SetValue(obj, lst, null);                                      
                			//...o problema esta nesse ponto
                		}
                	}
                }
		return result;
	}
}


//exemplo utilizando as classes acima

MyAdapter adp = new MyAdapter();

//fill list of orders with your items
List<Order> orders = adp.Read<Order>();

//fill list of sellers with your phonenumbers
List<Seller> sellers = adp.Read<Seller>();
Joab Silveira

Joab Silveira

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar