PDA

View Full Version : [C# 2.0]Reflection: ricavare proprietà solo dei primitivi


RaouL_BennetH
11-06-2010, 17:14
Buonasera a tutti :)

Mi servirebbe un suggerimento su come ottenere, da una classe composta da campi di diversa natura, mediante la reflection soltanto le proprietà dei tipi primitivi, per esempio:



public class C
{

private int counter;
private string message;
private List<string> someList; //non devo ricavarla mediante reflection
}


ho iniziato a buttar giù qualcosa:



private void GetFields(Type t)
{

PropertyInfo[] propInfo = t.GetProperties()
{
foreach(PropertyInfo info in propInfo)
{
someEvent();
}
}
}


In sostanza mi servirebbe di capire come dirgli:
Dammi tutte le proprietà solo dei primitivi.

Grazie mille :)

RaouL.

sneeze
09-07-2010, 20:06
var proprietaPrimitive = mioOggetto.GetType().GetProperties().Where(i => i.GetType().IsPrimitive).ToList();

sneeze
09-07-2010, 21:00
dimenticavo,
se la lambda non torna risultati perchè magari non hai proprietà primitive in quell'oggetto il metodo toList() darebbe una eccezzione. quindi controlla prima che la query linQ torni qualcosa, poi esegui il toList() o toArray() a seconda di cosa ti serve.