Una funzionalità interessante e forse poco utilizzata nello sviluppo di applicazioni web .NET sono le Action (o callback). Per chi ha sviluppato applicazioni desktop o javascript conosce la loro utilità, soprattutto quando si ha la necessità di gestire degli eventi.

In un sito web C# diventano molto utili nel momento in cui pagine o controlli diversi interagiscono tra loro: MasterPage, WUC, etc.
Supponiamo di avere un menu per la selezione della lingua nella MasterPage.
Nella MasterPage definiremo una proprietà del tipo:
public Action OnLanguageChange { get; set; }
Nell'evento scatenato dal cambio della lingua inseriremo:
if (OnLanguageChange != null)
            OnLanguageChange.Invoke();
Infine, nelle pagine che fanno uso della MasterPage e hanno la necessità di eseguire delle loro funzioni in base alla lingua scelta, registreremo il nostro handler in questo modo:
protected void Page_Load(object sender, EventArgs e)
    {
        (Master as MasterPage).OnLanguageChange = LoadStuff;
    }
comments powered by Disqus