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?