Vb Accesso a variabile globale da progetto dll

martedì 10 maggio 2011 - 11.39

sansi Profilo | Newbie

Ciao a tutti,
probabilmente è una cosa stupida ma non so se è possibile e come fare.

Io ho una soluzione formata da un progetto exe e una dll.

Nel progetto principale ho alcune variabili globali che vorrei fossero accessibili anche dalla dll senza dover fare il passaggio di valori ogni volta. E' possibile?

Grazie,
Massimo

AntCiar Profilo | Expert

ciao.

Dipende da come è strutturata l'applicazione.

Se la tua DLL ha tra i riferimenti il progetto EXE allora si, se il contrario ti tocca passarli
Cristian Barca

kataklisma Profilo | Senior Member

>Ciao a tutti,

Ciao :)

>probabilmente è una cosa stupida ma non so se è possibile e come
>fare.
>
>Io ho una soluzione formata da un progetto exe e una dll.
>
>Nel progetto principale ho alcune variabili globali che vorrei
>fossero accessibili anche dalla dll senza dover fare il passaggio
>di valori ogni volta. E' possibile?

Oltre ad essere impossibile (attueresti un Riferimento Circolare) è estremamente sbagliato a livello architetturale. Perchè hai bisogno di condividere delle informazioni presenti su un progetto in una dll?

Puoi spiegarci meglio la situazione?Di cosa si tratta?Setting, gestione delle informazioni di Login...?

>Grazie,
Di nulla, attendo tue!

------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

sansi Profilo | Newbie

>ciao.
>
>Dipende da come è strutturata l'applicazione.
>
>Se la tua DLL ha tra i riferimenti il progetto EXE allora si,
>se il contrario ti tocca passarli
>Cristian Barca

No, non ha tra i riferimenti il progetto exe perché è il progetto exe che ha tra i riferimenti la dll, quindi mi tocca proprio passarli.

Grazie,
Massimo

AntCiar Profilo | Expert

come diceva anche kataklisma, la cosa strutturata in questo modo non è corretta.
Passare le variabili ogni volta diventa è inconcepibile e può darsi che nell'applicazione se poi ti scordi di passarne una fai guai!!!.

Ti converrebbe mettere in una dll di basso livello (per capirci: che puoi inserire nei riferimenti dell'exe e della dll) tutte le impostazioni in modo che ci puoi accedere da qualsiasi parte dell'applicazione.

Ciao ciao
Cristian Barca

sansi Profilo | Newbie

>Oltre ad essere impossibile (attueresti un Riferimento Circolare)
>è estremamente sbagliato a livello architetturale. Perchè hai
>bisogno di condividere delle informazioni presenti su un progetto
>in una dll?

esattamente, il mio problema è proprio questo

>
>Puoi spiegarci meglio la situazione?Di cosa si tratta?Setting,
>gestione delle informazioni di Login...?
>

Hai visto giusto. Nel progetto principale vado a leggere un file di configurazione con tutta una serie di parametri che poi sono utilizzati da tutta la soluzione, mi avrebbe fatto comodo averli a disposizione anche nella dll.
C'è qualche altro metodo per avere a disposizione questi valori?

Grazie,
Massimo

kataklisma Profilo | Senior Member

>No, non ha tra i riferimenti il progetto exe perché è il progetto
>exe che ha tra i riferimenti la dll, quindi mi tocca proprio
>passarli.

***Risposto in basso :)

------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

kataklisma Profilo | Senior Member

>Hai visto giusto. Nel progetto principale vado a leggere un file
>di configurazione con tutta una serie di parametri che poi sono
>utilizzati da tutta la soluzione, mi avrebbe fatto comodo averli
>a disposizione anche nella dll.
>C'è qualche altro metodo per avere a disposizione questi valori?

Certo, crei una Dll TuoProgetto.Setting ed inserisci tutta la logica di "get/set" del file di setting, questa nuova dll potrai aggiungerla a tutti i tuoi progetti senza cadere in un riferimento circolare!

Nella nuova dll puoi inserire una classe statica o con pattern Singleton che gestisca la serializzazione/deserializzazione del file e richiamarla nei progetti in cui è referenziata in questa maniera : TuaDllSetting.Setting.Leggi() / TuaDllSetting.Setting.Salva(Setting Impostazioni)
------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

sansi Profilo | Newbie

>Certo, crei una Dll TuoProgetto.Setting ed inserisci tutta la
>logica di "get/set" del file di setting, questa nuova dll potrai
>aggiungerla a tutti i tuoi progetti senza cadere in un riferimento
>circolare!
>
>Nella nuova dll puoi inserire una classe statica o con pattern
>Singleton che gestisca la serializzazione/deserializzazione del
>file e richiamarla nei progetti in cui è referenziata in questa
>maniera : TuaDllSetting.Setting.Leggi() / TuaDllSetting.Setting.Salva(Setting
>Impostazioni)

Perfetto. Funziona ed è proprio quello che mi serviva. Grazie a tutti.

Massimo

kataklisma Profilo | Senior Member

>Perfetto. Funziona ed è proprio quello che mi serviva. Grazie
>a tutti.

Figurati, alla prossima!

Buona giornata!

------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5