Il frammento di codice qui di seguito, illustra una tecnica di come salvare in un file .csv, le proprietà di un controllo o classe.
La funzione salva in un file che viene passato, le proprietà dei controlli o classi che viene passata.
Funzione
private void SalvaInFileCsv<T>(List<T> controlli, string percorsoNomeFile)
{
var Elementi = new List<string>();
IEnumerable<PropertyDescriptor> proprieta = TypeDescriptor.GetProperties(typeof(T)).OfType<PropertyDescriptor>();
var campiProprieta = string.Join(";", proprieta.ToList().Select(x => x.Name));
Elementi.Add(campiProprieta);
var proprietaTrovati = controlli.Select(riga => string.Join(";", campiProprieta.Split(';').Select(a => riga.GetType().GetProperty(a).GetValue(riga, null))));
Elementi.AddRange(proprietaTrovati);
File.WriteAllLines(percorsoNomeFile, Elementi.ToArray());
}
Eseguo le funzione, passando un controllo di tipo button ed il percorso e nome file Csv dove salvare i dati.
Esempio per invocare la funzione
private void BtnSalvaOggetto_Click(object sender, EventArgs e)
{
List<Control> oggetti = new List<Control>();
oggetti.Add(Button1);
SalvaInFileCsv(oggetti, "C:\\Varie\\test.csv");
}
Nessun commento:
Posta un commento