luglio 2007 Blog Posts
Nella gestione dei file e delle directory, in System.IO, si utilizzano principalmente: File, FileInfo, Directory, Directory Info e la DriveInfo. La DriveInfo è bella perchè da un sacco di informazioni sul disco:
DriveInfo d = new DriveInfo("d:\\");
String info = "Drive: " + d.Name +
"Drive Format " + d.DriveFormat +
"\nDrive Type " + d.DriveType +
"\nVolume " + d.VolumeLabel +
"\nTotal Size " + d.TotalSize.ToString() +
"\nAvailable FreeSpace " + d.AvailableFreeSpace.ToString() +
"\nTotal Free Space " + d.TotalFreeSpace.ToString();
Console.WriteLine(info);
dove DriveType indica CDRom, Fixed, Network, Removable,Ram,.. e DriveFormat dice NTFS or FAT32.
Interessante...
Gioco un po’ quello che c’e’ in System.Xml.Serialization, anche perchè in TV non c’e’ (al solito) nulla di umano da vedere... ed il resto (saggio) della famiglia dorme.
La classe per serializzare è XmlSerializer, che si avvale di una bella dose di attributi sulle proprietà delle classi , es.
XmlRootAttribute : elemento radice dell’oggetto
XmlElementAttribute = elemento xml classico
XmlAttributeAttribute= elemento di tipo attributo
E i suoi amici.. XmlTextAttribute, XmlTypeAttribute, XmlEnumAttribute.., XmlArray
(ci sono anche per soap e si chiamano SoapAttributeAttribute, SoapEnumAttribute....).
[XmlRootAttribute("IlMioOggetto", Namespace = "http://www.bruna.com", IsNullable = false)]
public class mioOggetto2
{
[XmlAttributeAttribute]
public string id;
...
Rimettiamoci a studiare dopo un po’ di vacanza e un po’ di eccessivo lavoro (tanto per bilanciare).
Serialize or deserialize an object or an object graph using runtime serialization techniques (System.Runtime.Serialization namespace)
Le interfacce di serializzazione permettono di controllare tutto il processo e per implementarle è necessario implementare l’interfaccia ISerializable, che espone il metodo GetObjectData in cui viene effettuato il lavoro.
Ci provo:
[Serializable] //senza questo non va nulla
public class mioOggetto : ISerializable, IEquatable<mioOggetto >
{ private string nome;
private string cognome;
public mioOggetto(string n, string c)
{
nome = n;
cognome = c;
}
...
Implement .NET Framework interfaces to cause components to comply with standard contracts
E’ buona norma uniformare il comportamento delle proprie classi a quelli degli oggetti standard del framework, in tal modo l’uso nell’applicazione non è un “caso speciale”, ma è assolutamente coerente con il resto. Ci sono percio’ delle interfaccie pensate apposta:
IComparable: ha un unico metodo CompareTo per effettuare controlli ed ordinamenti , l’ho usata in [70-553] – 1. Section 1 – 1. Dev application – 1 – Manage data (4)
IDisposable: definisce il metodo Dispose per gestire una eventuale disallocazione specifica e dettagliata delle...