Raffa le ha sempre sapute tutte :-p

Grazie a Adrian , con il supporto di google, sono risalito ai primi post tecnici del Raffa sui NG... gennaio 1995, "R: Software for sky smartcard"

Ovviamente sono reperibili solo risposte... è proprio vero ke il raffa "le ha sempre sapute tutte!" :-D

Il suo primo intervento su .NET - poke parole ma buone - è datato novembre 2000... quando si era ancora in beta 1, "Application Error"!

Grande Raffa! :-D

Posizione di un DataRow

In un blog di Andrea suggeriva questo workaround "Perchè quando ci vuole, ci vuole... Reflection :-)"  per catturare la posizione di una certa Datarow: con reflection andare a leggere la variabile privata "rowID". Il workaround funziona ma non sampre... o per lo meno ho avuto problemi quando nella datatable devo aggiungere e togliere elementi... la variabile non sembra cambiare valore :(

Il workaound che ho trovato in sostituzione fa smepre uso di reflection ma è in un certo senso più documentato del precedente. La DataRowCollection ha infatti la proprietà protetta List che contiene da disegno gli elementi della collezione. Ho ragione di pensare che tale collezione sia anche correttamente ordinata... per cui scritto questo nuovo wrapper per bypassare il problema:

public static int GetRowId(DataRow row)
{

//FieldInfo rowFieldsInfo = typeof(DataRow).GetField("rowID", BindingFlags.NonPublic | BindingFlags.Instance);
//return (int) rowFieldsInfo.GetValue(row);
PropertyInfo protectedListProp = typeof(DataRowCollection).GetProperty( "List", BindingFlags.NonPublic | BindingFlags.Instance); IList rows = (IList) protectedListProp.GetValue(row.Table.Rows, null); return rows.IndexOf(row); }

Il workaround sembra funzionare! :-p

«luglio»
domlunmarmergiovensab
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567