Coach


In pieno rock ".net" roll
Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005

Le classi tipizzate e la reflection

Un paio di mesi ho scritto questo tip su come utilzzare la reflection per caricare una classe tipizzata.
Oggi utilizzando la stessa funzione per una entity che ereditava da una altra classe ho dovuto fare chiaramente una modifica perchè altrimenti si prendeva tutte le proprietà della classe base.

Come primo approccio ho pensato ad usare i BindingFlags

esempio

PropertyInfo[] listProperty;
Type _type = item.GetType();
listProperty = _type.GetProperties(BindingFlags.DeclaredOnly);

Dove DeclaredOnly dice che non recupera le proprietà ereditate.
Invece questo non funziona non chiedetemi perchè alla fine ho risolto inserendo una if testando la proprietà DeclaringType che recupera la classe dove viene dichiarata la proprietà.

foreach
(PropertyInfo singleProperty in listProperty)
{
if(singleProperty.DeclaringType.ToString().Equals(item.ToString()))
{
if(reader[singleProperty.Name] != DBNull.Value)
{
singleProperty.SetValue(item,reader[singleProperty.Name] ,
null);
}
}

Qualcuno ha avuto il mio stesso problema? come ha risolto?
Fatemi sapere.
Categoria: .NET 1.1
giovedì, 09 feb 2006 Ore. 19.24
  • Views Home Page: 300.578
  • Views Posts: 826.641
  • Views Gallerie: 356.737
  • n° Posts: 484
  • n° Commenti: 275












Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003