venerdì 29 gennaio 2010

[Serializable] quando il problema si pone.

Come risolvere un problema che apparentemente non esiste??
Nel creare un web custom control può accadere che per puro caso vi imbattiate nel dover realizzare un
div che contiene una serie di bottoni, popolati "per comodo" o "per mera complicazione" tramite una lista
tipizzata.

public class Item
{
private string _itemName;
private string _itemValue;

public string itemName {get ; set ;}
public string itemValue {get ; set ;}
}

public class ItemDataProvider
{
private List _items = new List();

public List Items {get; set;}

public ItemDataProvider()
{
// tutto il codice necessario per eseguire il fill di _items
}
}

Per finire...
[DefaultProperty("Text")]
[ToolboxData("<{0}:ItemViewer runat=server>")]
public class ItemViewer : WebControl
{
[Category("Data")]
public List Items {get; set;}
}

Create la pagina.. aggiungete il controllo, un po sale un po di pepe...
E puf vi beccate una bella Eccezzione !!!

Del tipo che Item non è contrassegnata come serializable....


Bhe che dire se cercate qua e la qualcuno vi dirà che manca l'attributo alla proprieta del controllo web
qualcuno che manca l'attributo alla lista..
io vi levo ogni dubbio..

MANCA ALLA CLASSE ENTITY...

[Serializable]
public class Item
{
private string _itemName;
private string _itemValue;

public string itemName {get ; set ;}
public string itemValue {get ; set ;}
}

e fatto .. !!!

Nessun commento: