söndag 28 oktober 2012

Singleton in C#

En singleton i C# kan se ut något i stil med följande:

 public sealed class Singleton  
 {  
   private static Singleton instance = null;  
   private static readonly object padlock = new object();  
   private Singleton()  
   {  
   }  
   public static Singleton Instance  
   {  
     get  
     {  
       lock (padlock)  
       {  
         if (instance==null)  
         {  
           instance = new Singleton();  
         }  
         return instance;  
       }  
     }  
   }  
 }  


Eller med hjälp av klassen Lazy<T>():

 public class Singleton  
 {  
  private readonly static Lazy _instance = new Lazy(() => new Singleton());  
  public static Singleton Instance  
  {  
  get  
  {  
   return _instance.Value;  
  }  
  }  
 }  


Läs mer om singleton på denna sida:
http://www.yoda.arachsys.com/csharp/singleton.html

EnableViewState - true or false?

När är det nödvändigt att aktivera eller avaktivera EnableViewState på sidor och kontroller?
Bra info på denna länk om detta.

AutoEventWireup - true or false?

Klockren info på nedanstående länk om ordningsföljden på hur sidors/kontrollers metoder parsas.

http://hockeswe.blogspot.se/2007/07/autoeventwireuptrue.html


TemplateControl.HookUpAutomaticHandlers (vilken anropas under kontrollens OnInit bland annat) kommer om AutoEventWireup=true att försöka hitta följande metoder:

Om kontrollen är Page:

Page_PreInit
Page_PreLoad
Page_LoadComplete
Page_PreRenderComplete
Page_InitComplete
Page_SaveStateComplete

För alla TemplateControls:

Page_Init
Page_Load
Page_DataBind
Page_PreRender
Page_Unload
Page_Error
Page_AbortTransaction eller om den inte finns; OnTransactionAbort
Page_CommitTransaction eller om den inte finns; OnTransactionCommit

Detta görs i metoden TemplateControl.GetDelegateInformationWithNoAssert().