• User

    Chiamare una Sub/Function con stringa

    Esiste qualche calsse in .NET che richiama Sub o Function partendo dal loro nome sotto forma di stringa?

    Ad esempio:

    
    Sub Ciao()
    ....
    End sub
    Dim mySub as String = "ciao"
    Call mySub (che ovviamente dovrebbe essere sostituita con qualcosa che funzioni...)
    
    

  • User

    Si usa la System.Reflection per esplorare il codice nell'assembly (minchia che figata!!!!)

    Se serve a qualcuno posto la soluzione.;)


  • Moderatore

    dai, postala che può essere molto utile a tutti 😉

    :ciauz:


  • User

    ecco qui
    Mi serve per un menù XML in cui metto anche eventuali chiamate sull'action dei pulsanti scrivendo as esempio sub:miasub oppure redirect:link.aspx oppure transfer:link.aspx con opportuni argomenti per chiamata.
    Quindi poi dovevo invocare 'ste chiamate....

    
    PrivateSub CallFromString(ByVal _subs AsString, OptionalByVal _args() AsString = Nothing)
     
    Dim MioAmbito As Type = Me.GetType()
    Dim MioMetodo As System.Reflection.MethodInfo = MioAmbito.GetMethod(_subs)
     
    If IsNothing(MioMetodo) Then ExitSub
    ' a me serviva questa riga qua sotto , perchè faccio il casting 
    ' di una stringa separata da ; in array e se passo nulla 
    'mi crea _args() uguale a args(0)=""
    '...però si può fare meglio
    If _args.Length = 1 And _args(0) = ""Then _args = Nothing
     
    If IsNothing(_args) Then
    'invoco senza argomenti
    MioMetodo.Invoke(Me, Nothing)
    Else
    'invoco con argomenti
    MioMetodo.Invoke(Me, _args)
    EndIf
    EndSub
    
    

    questa riga

    
    Dim MioAmbito As Type = Me.GetType()
     
    
    

    potrebbe anche essere

    
    Dim MioAmbito As Type = Page.GetType()
     
    
    

    Ma io lo utilizzo in un control, non nel Code-behind della pagina o nella pagina stessa, quindi ho dovuto fare così.
    Penso sia giusto...funziona...


  • User

    se adesso qualcuno mi sa dire come far ereditare una classe esterna ad un Control inserito in una pagina, in modo che siano accessibili da essa(classe esterna) anche tutti i WebControl potrei spostare tutto il codice nel mio B.O.
    .....
    :arrabbiato:

    era un altro mio post...
    :D:D faccio anche cross-posting....