Questo piccolo tip mostra come è possibile creare un file XML in cui ricopiare le chiavi della sezione appSettings del file di configurazione dell’applicativo utilizzando LINQ ed in particolar modo la funzionalità di XML Literal del VB.NET.
La funzione in esame è la seguente:
Public Function CreateLocalConfigurationFile(ByVal fileName As String) As BooleanDim retval = TrueDim xdoc As XDocument = _<?xml version="1.0" encoding="UTF-8" standalone="yes"?><configuration><%= From key In ConfigurationManager.AppSettings.Keys _Select <key name=<%= key %> value=<%= ConfigurationManager.AppSettings(key.ToString()) %>/> _%></configuration>TryDim docPath = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)xdoc.Save(fileName)Catch ex As Exceptionretval = FalseEnd TryReturn retvalEnd Function
In sostanza viene creta un’istanza della classe XDocument utilizzando XML LIteral in cui utilizziamo una query LINQ sulla collection ApSettings della classe ConfigurationManager.
Per poter utilizzare la classe ConfigurationManager è necessario referenziare la libreria System.Configuration.
In pratica, supponendo che il file di configurazione abbia la seguente sezione appSettings:
<configuration><appSettings><add key="key1" value="value1"/><add key="key2" value="value2"/><add key="key3" value="value3"/><add key="key4" value="value4"/></appSettings></configuration>
Si ottiene il seguente file XML:
<?xml version="1.0" encoding="utf-8" standalone="yes"?><configuration><key name="key1" value="value1" /><key name="key2" value="value2" /><key name="key3" value="value3" /><key name="key4" value="value4" /></configuration>
Ovviamente è possibile utilizzare l’algoritmo per scrivere su file XML qualsiasi collezione di elementi.
Commenti