DevAdmin Blog

Blog di Ermanno Goletto (Microsoft MVP Directory Services - MCITP - MCTS - MCSA - MCP)
posts - 886, comments - 447, trackbacks - 13

My Links

News

Avatar

Curriculum Vitae

Visualizza il profilo di Ermanno Goletto su LinkedIn


Il contenuto di questo blog e di ciascun post viene fornito “così come é”, senza garanzie, e non conferisce alcun diritto. Questo blog riporta il mio personale pensiero che non riflette necessariamente il pensiero del mio datore di lavoro.

Logo Creative Commons Deed


Logo SysAdmin.it SysAdmin.it Staff


Logo TechNet Forum TechNet Italia @ForumTechNetIt Follow TechNet Forum on Twitter


Logo MVP


Ermanno Goletto Follow ermannog on Twitter

Article Categories

Archives

Post Categories

Blogs

Friends

Knowledge Base

MVP Sites

Resources

Modificare le Settings con scope Application

Usando VS 2005 ho potuto apprezzare il lavoro fatto per quanto riguarda la gestione dei settings dell'applicazione che ora hanno due scope quello Application (solo read only nel senso che occorre modificare il file config) e quello User.
Il problema però è che i TableAdapter utilizzano una stringa di connessione memorizzata nei settings, ma con scope Application quindi a runtime non è possibile modificare la stringa di connessione (tra l'altro a quanto pare non è possibile inserire nei settings una Connection String che abbia lo scope User confermate?).

Un modo per modificare la stringa di connessione lo trovate qui http://blogs.msdn.com/smartclientdata/archive/2005/07/25/443034.aspx e consiste nel gestire l'evento  SettingsLoaded dell'MySettings per eseguire la modifica.

Un modo alternativo può essere quello di utilizzare la Reflection:

Dim m As System.Reflection.MethodInfo
m = My.MySettings.Default.GetType.GetMethod("set_Item")
m.Invoke(My.MySettings.Default, New Object() {"MyConnectionString", "Data Source=MySrv;Initial Catalog=MyDB;Persist Security Info=True;Integrated Security=True"})

[Update]
In realtà non server ricorrere alla Reflection perchè basta fare la seguente impostazione:

My.MySettings.Default.Item("MyConnectionString") = "Data Source=MySrv;Initial Catalog=MyDB;Persist Security Info=True;Integrated Security=True"

In sostanza le settings con scope creano una proprietà readonly di tipo:
My.MySettings.Default.MyConnectionString

Per accedere direttamente alla proprietà Item (ovviamente bisogna specificare il nome del settings come string) l'impostazione è possibile. Il dubbio mi è venuto chiedendomi come era possibile evitare di impostare tramite Item le proprietà ed in effetti non alcun blocco in questo senso anche perchè quando l'applicazionme si avvia le settings di tipo Application o User devono essere impostate leggendo dai file di configurazione.

 

 

Print | posted on Wednesday, December 14, 2005 6:05 PM | Filed Under [ Code, Snippets & Scripts .NET ]

Feedback

No comments posted yet.

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 2 and 5 and type the answer here:

Powered by:
Powered By Subtext Powered By ASP.NET