giovedì 20 gennaio 2022

C# ottenere le proprietà di un controllo o classe e salvarle in un file .csv

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: