uhm... di quale esempio parli esattamente?

m.
Ok... sono semplicemente due modi diversi per registrare degli event handler, ma con il medesimo risultato.

MSDN fa così:
public void MyEventHandler(...)
{
  ...
}
public void SomeMethod()
{
  class.Event += new EventHandler(MyEventHandler);
}

ossia crea una nuova istanza di delegate di tipo EventHandler e lo fa puntare al metodo MyEventHandler.

Daniele fa così:
public void SomeMethod()
{
  class.Event += new delegate(...)
    {
      ... logica per gestire l'evento ...
    }
}

che è analogo al caso precedente: crea sempre un'istanza di un delegate per gestire l'evento, solo che invece di usare un metodo a parte come avveniva con MyEventHandler, lo definisce inline. E' una sintassi introdotta in C# 2.0 chiamata Anonymous Method.

Da C# 3 è disponibile una sintassi ancora più stringata, che sfrutta le lambda expression:
public void SomeMethod
{
  class.Event += (s, e) => doSomething();
}


Più chiaro ora?

Ciao!
Marco
226 messaggi dal 08 ottobre 2010
Ahh ok ok, non avevo visto questo!
            Implements IHttpModule.Init
        AddHandler application.BeginRequest, _
            AddressOf Me.Application_BeginRequest
        AddHandler application.EndRequest, _
            AddressOf Me.Application_EndRequest


E infatti non tornava..

Però! (non sono mai soddisfatto =P)
Ora mi chiedo:

Questa classe httpModule, quando viene istanziata e da chi?
E nel caso di un redirect verrebbe istanziata due volte?
Ciao,

viene istanziata dall'HttpRuntime ad ogni richiesta, a patto di registrarla nel web.config.

Se effettui un redirect, visto che c'è un roundtrip verso il browser, ci sono due richieste e quindi due esecuzioni del modulo.

m.
226 messaggi dal 08 ottobre 2010
Dunque, se ho capito bene, HttpModule è una classe che mette a disposizone degli eventi, va registrata per essere instanziata dall'httpRuntime il quale poi istanzierà e richiamerà gli eventi.
Gli eventi della classe httpModule a quanto ho capito sono vuoti, tocca al programmatore sviluppare il codice relativo.
Modificato da Verce84 il 16 dicembre 2010 15.03 -
226 messaggi dal 08 ottobre 2010
Ok.. non mi va :|

non capisco dove possa essere l'errore.. vi posto il codice:

Imports Microsoft.VisualBasic
Imports TestModel


Public Class EFModule
    Implements IHttpModule

    Protected contesto As HttpApplication
    Protected modello As TestModelEntities

    Public Sub Init(ByVal context As System.Web.HttpApplication) Implements System.Web.IHttpModule.Init

        AddHandler context.BeginRequest, AddressOf InizializzaContesto
        AddHandler context.EndRequest, AddressOf ChiudiContesto

    End Sub

    Public Sub Dispose() Implements System.Web.IHttpModule.Dispose

    End Sub

    Protected Sub InizializzaContesto(ByVal source As Object, ByVal e As EventArgs)

        modello = New TestModelEntities

        HttpContext.Current.Items.Add(New String("modello"), modello)

    End Sub

    Protected Sub ChiudiContesto(ByVal source As Object, ByVal e As EventArgs)

        modello = HttpContext.Current.Items("modello")

        If Not IsNothing(modello) Then
            modello.Dispose()
        End If

    End Sub

End Class



Purtroppo facendolo girare mi da l'errore 500 e non so dove sia il problema..
Modificato da Verce84 il 16 dicembre 2010 17.44 -
226 messaggi dal 08 ottobre 2010
Risolto.. errore nel Web.Config

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.