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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar