Det var länge sedan jag skrev något om ASP.NET i bloggen nu, jag har varit upptagen med diverse experiment osv.
Nu tänkte jag berätta om ett nytt sätt att använda List<T> på. Eller nytt och nytt, det är nytt för mig iallafall.
Jag jobbar mycket med egna objekt, och listor av dessa, istället för DataTable och liknande. Färdiga SqlDataSource-kontroller går helt bort, där tappar man ju all kontroll.
När man jobbar med listorna, så ligger ju dessa under System.Collections.Generic.List<T> och returnerar jag en List<T> så måste jag ha med using System.Collections.Generic på sidan där jag ska använda mina listor.
Detta är ju i sig inget problem, men jag har fått tips om att göra en egen klass för detta istället. Klassen är mycket enkel, och ser ut så här:
public class ObjectCollection : System.Collections.Generic.List<Object>
{ }
Det är allt faktiskt.
Sedan kan man också, vilket jag ofta gjort på sista tiden, utöka klassen med en funktion för att fylla samlingen från en reader.
public class ObjectCollection : System.Collections.Generic.List<Object>
{
public ObjectCollection (System.Data.IDataReader reader)
{
while (reader.Read())
{
this.Add(new Object((int)reader[0], reader[1] as string));
}
reader.Close();
}
}
Det gäller bara att se till att readern man skickar in faktiskt innehåller rätt data. En felhantering för detta vore kanske inte fel, men den får du implementera själv
b8e7d0c8-c9a7-49f1-98d0-e39d0f706768|0|.0