Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    dove dichiaro variabili globali

    stò scrivendo una serie di controlli e vorrei che questi possano condividere alcune variabili globali, come ad esempio un riferimento ad una mia classe... dove le dichiaro? avevo pensato di usare l'oggetto application...ma non esiste una gestione un po' più elegante?
    "I video giochi non influenzano i bambini. Voglio dire, se Pac-man avesse influenzato la nostra generazione, staremmo tutti saltando in sale scure, masticando pillole magiche e ascoltando musica elettronica ripetitiva!" (Kristian Wilson, Nintendo Inc., 1989)
    Pochi anni dopo naquero le feste rave, la musica techno e l'ecstasy...

    :quote:

  2. #2

  3. #3
    Originariamente inviato da Jc_
    global.asax?
    e poi come faccio a usarle nelle classi dei miei controlli?
    "I video giochi non influenzano i bambini. Voglio dire, se Pac-man avesse influenzato la nostra generazione, staremmo tutti saltando in sale scure, masticando pillole magiche e ascoltando musica elettronica ripetitiva!" (Kristian Wilson, Nintendo Inc., 1989)
    Pochi anni dopo naquero le feste rave, la musica techno e l'ecstasy...

    :quote:

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: dove dichiaro variabili globali

    Originariamente inviato da cubeccu
    stò scrivendo una serie di controlli e vorrei che questi possano condividere alcune variabili globali, come ad esempio un riferimento ad una mia classe... dove le dichiaro? avevo pensato di usare l'oggetto application...ma non esiste una gestione un po' più elegante?
    Io utilizzo una variabile pubblica o una proprietà pubblica in un modulo. Ad esempio la stringa di connessione al database è globale per tutta l'applicazione, perciò utilizzo una property public in un modulo.

    Ciao

  5. #5

    Re: Re: dove dichiaro variabili globali

    Originariamente inviato da pietro09
    Io utilizzo una variabile pubblica o una proprietà pubblica in un modulo. Ad esempio la stringa di connessione al database è globale per tutta l'applicazione, perciò utilizzo una property public in un modulo.

    Ciao
    si però dove istanzi la variabile che deve contenere la classe che contiene questa variabile (...si è vero, non so parlare itagliano...)
    anche io ho fatto così ma dopo non so come richiamarla...
    "I video giochi non influenzano i bambini. Voglio dire, se Pac-man avesse influenzato la nostra generazione, staremmo tutti saltando in sale scure, masticando pillole magiche e ascoltando musica elettronica ripetitiva!" (Kristian Wilson, Nintendo Inc., 1989)
    Pochi anni dopo naquero le feste rave, la musica techno e l'ecstasy...

    :quote:

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ti passo l'esempio che ho io.
    Ho un modulo nel file MioModulo.vb
    codice:
    Friend Module MioModulo
        Public ReadOnly Property StringaConnessione$()
            Get
                Return "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=C:\Documenti\Interdev\prova.mdb;Mode=Share Deny None;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"
            End Get
        End Property
    
    
    
    End Module
    Dal codice sottostante di qualunque pagina utilizzi per esempio la proprietà StringaConnessione per esempio:
    Response.write(StringaConnessione) semplicemente, oppure
    Response.write(MioModulo.StringaConnessione)


    Ossia, StringaConnessione è una variabile reperibile in ogni posto.

  7. #7
    si nel caso che questa sia statica è facile... ma nel caso che debba essere create dinamicamente lo è un po' meno....
    mi spiego meglio.
    Io nel mio sito devo dare la possibità di usare più tipi di database. Per questo motivo ho creato un interfaccia IDataBaseProvider nella quale poi vengono implementati i diversi tipi di db (MdbDataProvider, SqlDataProvider, ecc...)
    Ho quindi creato una classe che estende HttpApplication in modo da utilizzarla in Glogal.asax che, nel costruttore ha:

    codice:
    HttpContext.Current.Application["CurrentDataProvider"] = new MdbDataProvider(ConfigurationSettings.AppSettings["dsn"]);
    
    HttpContext.Current.Application["CurrentLanguageCache"] = new Language.LanguageCache();
    ovviamente questo mi crea una nuova classe MdbDataProvider e me la salva nella collezione Application, e lo stesso fa per una mia classe LanguageCache.

    Per riottenere all'interno dei diversi moduli questi oggetti uso un codice del genere:

    codice:
    ((IDataProvider)HttpContext.Current.Application["CurrentDataProvider"])
    Questo funziona. Il problema è che l'ogggetto Application (a quanto pare) è un po' lento e sarebbe meglio poter fare come mi hai consigliato tu. D'altra parte l'istanza da LanguageCache deve essere uguale per tutti i moduli e non posso ricrearla una volta che ne ho bisogno (dato i calcoli che vengono effettuati)...

    Mi pareva di aver letto che c'era la possibilità di inserire delle varibiali globali all'interno dei file asax...ma dopo come è possibile accedere ad esse?
    "I video giochi non influenzano i bambini. Voglio dire, se Pac-man avesse influenzato la nostra generazione, staremmo tutti saltando in sale scure, masticando pillole magiche e ascoltando musica elettronica ripetitiva!" (Kristian Wilson, Nintendo Inc., 1989)
    Pochi anni dopo naquero le feste rave, la musica techno e l'ecstasy...

    :quote:

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.