Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-11-2007, 11:47   #1
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
[C#]Passare variabili ad app.config

Ciao a tutti

E' possibile fare una cosa del genere?

Codice PHP:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
    <add name="MyClass.Properties.Settings.projectConnectionString"
            connectionString="server=[b]variabile[/b];user id=[b]variabile[/b]...etc.." />
    </connectionStrings>
</configuration>
Cioè, non avere valori prefissati nel file app.config ma passargli delle variabili di volta in volta. Questo per cercare di utilizzare un solo file per diverse applicazioni.

Grazie

RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2007, 12:15   #2
0rph3n
Senior Member
 
L'Avatar di 0rph3n
 
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
ma a sto punto a cosa ti servirebbe il file di configurazione?
0rph3n è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2007, 12:22   #3
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
non so se in questo caso ti può servire..
ma io avevo fatto questa classettina per gestire la configurazione in C# dato che sentivo la mancanza delle properties di Java e, dopo una breve ricerca, non avevo trovato niente di simile...
Codice:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace FileSystemListener
{
    public class Properties
    {
        private static Dictionary<string, string> properties = new Dictionary<string, string>();
        private static string filename = "config.properties";
        private static bool isLoaded = false;


        private static void loadProperties()
        {
            if (isLoaded) {return; }
            else
            {
                StreamReader reader = File.OpenText(filename);
                string line = "";
                while ((line = reader.ReadLine()) != null)
                {
                    string[] splittedLine = line.Split('=');
                    string key = splittedLine[0];
                    string value = splittedLine[1];
                    properties.Add(key, value);
                }
                reader.Close();
                isLoaded = true;
            }
        }


        public static void setPropertiesFile(string filename)
        {
            Properties.filename = filename;
        }


        public static string get(string key)
        {
            loadProperties();
            return properties[key];
        }


        public static void add(string key, string value)
        {
            loadProperties();
            properties.Add(key, value);
        }


        public static void set(string key, string value)
        {
            loadProperties();
            properties[key] = value;
        }


        public static void save()
        {
            StreamWriter writer = File.CreateText(filename);
            foreach (string key in properties.Keys)
            {
                writer.Write(key + "=" + properties[key] + '\n');
            }
            writer.Flush();
            writer.Close();
        }
    }
}
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2007, 12:29   #4
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
@0rph3n

Sono alla ricerca di un modo per non avere file in chiaro sul client. Se metto server, nomedb, user id e password nel file app.config, sul client dell'utente sono in chiaro. E poi per avere un unico app.config da poter usare per tutti.

@^TiGeRShArK^

ma per le properties di Java cosa intendi?

Pensando al C# a me come properties viene in mente:

Codice:
private string _stringa;

public string  Stringa
{
    get { return _stringa; }
    set { stringa = value; }
}


//da qualche parte nel codice....

Classe classe = new Classe();
classe.Stringa = "abcde";

//
Grazie per l'esempio, ho bisogno di ragionarci un pò su
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2007, 12:39   #5
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
@0rph3n

Sono alla ricerca di un modo per non avere file in chiaro sul client. Se metto server, nomedb, user id e password nel file app.config, sul client dell'utente sono in chiaro. E poi per avere un unico app.config da poter usare per tutti.

@^TiGeRShArK^

ma per le properties di Java cosa intendi?

Pensando al C# a me come properties viene in mente:

Codice:
private string _stringa;

public string  Stringa
{
    get { return _stringa; }
    set { stringa = value; }
}


//da qualche parte nel codice....

Classe classe = new Classe();
classe.Stringa = "abcde";

//
Grazie per l'esempio, ho bisogno di ragionarci un pò su
si infatti..
Le properties di Java che intendo io in realtà sono un meccanismo per gestire la configurazione.
Non è altro che una coppia di chiavi-valori che è possibile leggere da un file in questo formato:
Codice:
host=192.168.0.1
username=pippo
password=pluto
semplicemente caricando il file di properties e accedendo tramite dei getters & setters.
Nella mia versione delle properties per il C# basta fare così:
Codice:
Properties.loadProperties(); //La prima volta per caricare le properties, quindi di solito nel costruttore
string username = Properties.get("username");
string password = Properties.get("password");
e così via.
è anche possibile modificare le properties tramite il metodo set, aggiungerne altre tramite il metodo add e salvare il tutto sullo stesso file...
...ora che ci penso mi sò dimenticato il metodo remove...
ma è una banalità da implementare
__________________

Ultima modifica di ^TiGeRShArK^ : 30-11-2007 alle 12:45.
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2007, 13:42   #6
uReverendo
Member
 
L'Avatar di uReverendo
 
Iscritto dal: May 2006
Messaggi: 69
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
Ciao a tutti

E' possibile fare una cosa del genere?

Codice PHP:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
    <add name="MyClass.Properties.Settings.projectConnectionString"
            connectionString="server=[b]variabile[/b];user id=[b]variabile[/b]...etc.." />
    </connectionStrings>
</configuration>
Cioè, non avere valori prefissati nel file app.config ma passargli delle variabili di volta in volta. Questo per cercare di utilizzare un solo file per diverse applicazioni.

Grazie

RaouL.
La classe ConfigurationManager può fare a caso tuo.

http://msdn2.microsoft.com/en-us/lib...er(VS.80).aspx
uReverendo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:25.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v