20 messaggi dal 28 settembre 2005
Ciao a tutti,
ho un'applicazione ASP.net in cui le varie classi delle pagine ereditano da una una classe generale Pagina (che eredita da System.Web.UI.Page).
In alcune delle pagine ho qualcosa di simile:

private void Metodo1()
{
base.Metodo1();
...
}

Nel metodo padre vorrei fare in modo di avere informazioni sull'oggetto (o la classe...) figlio che lo ha invocato.
Come posso fare?

Grazie
non ho capito molto bene, con intendi di preciso dicendo che nel metodo padre vuoi sapere l'oggetto che lo ha invocato?

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
20 messaggi dal 28 settembre 2005
Ecco un esempio di codice, spero sia più chiaro:

public class Padre
{
public Padre()
{
}
protected void Metodo()
{
// A questo punto vorrei avere il riferimento alla classe Figlio1
// che ha invocato questo metodo
}
}

public class Figlio1 : Padre
{
public Figlio1()
{
}
new private void Metodo()
{
base.Metodo();
}
}
Modificato da gekoT il 16 novembre 2005 12.30 -
guarda se questa soluzione fa al caso tuo.

public interface MyInterface
  {
    void MetodoFilglio();
  }

  public class MyFatherPage   : Page
  {
    protected virtual void Metodo(MyInterface myObject)
    {
      myObject.MetodoFilglio();
    }
      
  }

  public class MySonPage  :  MyFatherPage, MyInterface   
  {
    protected override void Metodo(MyInterface myObject)
    {
      base.Metodo (this);
    }
    public void MetodoFilglio()
    {

    }

  }


ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
20 messaggi dal 28 settembre 2005
Questa soluzione non è male, ma così avrei dovuto implementare il metodo in tutte le classi "figlie", cosa che vanifica il mio obiettivo, e cioè quello di riconoscere la classe figlia utilizzando solo il codice contenuto nel metodo della classe padre. Ho risolto utilizzando la Reflection.

Grazie, ciao
in questo caso forse è esagerato usare la reflection, ma è una soluzione.
personalmente preferisco l'intefaccia, primo perche la implementi solo nelle classi che ritieni opportune, secondo perche è più performante, anche se in asp.net 2.0 i meccanismo di reflection sono stati ottimizzati.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

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.