Ciao a tutti,
ho un problema con la modifica di un campo XML.
Il file XML è così composto:
<?xml version="1.0" encoding="utf-8"?>
<File xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.memba.org/2006/attachments">
<NumDown>1</NumDown>
<Guid>868be2f5-d16f-406c-961e-fe4e8e3fbc10</Guid>
<FileName>1f.jpg</FileName>
<ContentType>image/pjpeg</ContentType>
<Key>8220362ea0084522aa2e1ed494dd2149</Key>
<Size>210811</Size>
<HashValue>91053b06902be691d2e4db932e8f9d278f97326 9</HashValue><CreatedOn>2009-03-03T16:59:16.6241766Z</CreatedOn></File>
Per creare il file XML utilizzo il metodo Insert Xml Serializer:
codice:
public static void Insert(File f, DirectoryInfo di)
{
if (f == null)
throw new ArgumentNullException("f", Properties.Resources.BLExceptionNullFile);
if(!di.Exists)
throw new ArgumentException(Properties.Resources.BLExceptionMissingDirectory, "di");
if (f.IsSaveRequired)
{
FileInfo[] arrFileInfo = di.GetFiles(FileBroker.GetDefinitionFile(f.Guid));
if ((arrFileInfo != null) && (arrFileInfo.Length>0))
throw new ArgumentException(Properties.Resources.BLExceptionDefinitionExists, "f");
using (XmlWriter objXmlWriter = XmlWriter.Create(Path.Combine(di.FullName, FileBroker.GetDefinitionFile(f.Guid))))
{
XmlSerializer objXmlSerializer = new XmlSerializer(typeof(File));
objXmlSerializer.Serialize(objXmlWriter, f);
}
f.SaveCompleted();
}
}
Per leggere il file XML uso un metodo selectbyGuid:
codice:
public static File SelectByGuid(Guid g, DirectoryInfo di)
{
if (g.Equals(Guid.Empty))
throw new ArgumentException(Properties.Resources.BLExceptionEmptyFileGuid, "g");
if (!di.Exists)
throw new ArgumentException(Properties.Resources.BLExceptionMissingDirectory, "di");
FileInfo[] arrFileInfo = di.GetFiles(FileBroker.GetDefinitionFile(g));
if ((arrFileInfo == null) || (arrFileInfo.Length < 1))
throw new ArgumentException(Properties.Resources.BLExceptionMissingDefinition, "g");
File objFileRet;
using (XmlReader objXmlReader = XmlReader.Create(Path.Combine(di.FullName, FileBroker.GetDefinitionFile(g))))
{
XmlSerializer objXmlSerializer = new XmlSerializer(typeof(File));
objFileRet = objXmlSerializer.Deserialize(objXmlReader) as File;
}
return objFileRet;
}
Il campo NumDown è un contatore. Come faccio a decrementare il suo valore ogni volta che c'è un determinato evento?