Gabriele Del Giovine Blog (Z80 powered brain...)


Un blog su quel che faccio (o cerco di fare...)
Calendario
aprile 2024
lmmgvsd
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345
Archivio Posts
Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005
Links
    Mappa
    Blogs Amici
      Statistiche
      • Views Home Page: 301.553
      • Views Posts: 366.272
      • Views Gallerie: 256
      • n° Posts: 163
      • n° Commenti: 198

      SPListItem.Delete & SPListItem.Recycle

      Tutti coloro che usano Sharepoint come utenti o sviluppatori sanno che in WSS 3.0 (o v12 fate voi) esiste il cestino. Se cancellate un elemento di una lista (o la lista stessa) lo potete recuperare aprendo il cestino (recycle bin). Molti sviluppatori spesso non si rendono conto che invocando il metodo .Delete dell'oggetto SPListItem l'elemento cancellato non va proprio nel cestino ma viene eleminato in maniera irreversibile. Abilmente celato nella documentazione dell'SDK c'è un metodo dal nome equivoco, .Recycle che restituisce un GUID. Bene, questo metodo elimina l'elemento dalla lista e lo inserisce nel cestino. In caso di successo restituisce il GUID dell'elemento "cestinato". Vediamo in dettaglio cosa fa usando il fido Reflector.

      La prima cosa è andare a vedere che fa il metodo .Delete

      public override void Delete()
      {
          this.DeleteCore(DeleteOp.Delete);
      }
      
      public Guid Recycle()
      {
          return this.DeleteCore(DeleteOp.Recycle);
      }
      
      come potete veder sia .Delete che .Recycle invocano un metodo private .DeleteCore  a cui passano un parametro contenente il tipo di cancellazione desiderato.

      Cosa abbiamo imparato da questo rapido giro nell'OM di Sharepoint? Se nei nostri programmi vogliamo avere la possibilità di recuperare i dati cancellati occorre usare .Recycle in luogo di .Delete.
      Sviluppatore avvisato mezzo salvato.





      Categoria: Sharepoint
      sabato, 30 mag 2009 Ore. 01.50
      Copyright © 2002-2007 - Blogs 2.0
      dotNetHell.it | Home Page Blogs
      ASP.NET 2.0 Windows 2003