Alex's Weblog

Weblog di Ermanno Goletto (Codename Alex - A Learning EXperience)
posts - 438, comments - 4214, trackbacks - 294

My Links

News

Il blog è stato
trasferito al
 seguente link:


DevAdmin Blog

Add my blog to Live

Foto

Curriculum Vitae


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 MCTS

Logo MCSA

Logo MCP

Logo Microsoft Certified Business Management Solutions Professional

Microsoft Certified Business Management Solutions Specialist


Logo UGIdotNET UGIdotNET Contributor


Logo UGISS UGISS Contributor


Logo SysAdmin.it SysAdmin.it Staff


Article Categories

Archives

Post Categories

Blogs

Database

Development

Friends

IT

Knowledge Base

Links

MBS

MCP

MVP Sites

User Groups

Virtualization

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 mercoledì 14 dicembre 2005 21:05 | Filed Under [ Code & Snippet .NET Framework 2.0 ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET