Autor Beitrag
Dhakiyah
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 327
Erhaltene Danke: 5

Windows 7
Delphi XE2
BeitragVerfasst: Do 02.07.15 10:59 
Hallo!
Ich versuche mich gerade an der Konfigurationsdatei in C#...
Kenne das leider so gar nicht, wir haben immer mit INI-Dateien gearbeitet...

Wie auch immer.
Ich habe in der App.Config eine Variable angelegt und wollte diese jetzt im Code ansprechen.
Es funktioniert aber nicht.
Diese ist als Benutzervariable angelegt. Wenn ich sie als Anwendungsvariable abspeichere geht es...
Was mache ich falsch?

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Configuration;

namespace Test_Config
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void button1_Click(object sender, EventArgs e)
        {
            string s_hilf = ConfigurationManager.AppSettings["Variable1"];
            textBox1.Text = s_hilf;
        }
    }
}


ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="Test_Config.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <startup
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
    <userSettings>
        <Test_Config.Properties.Settings>
            <setting name="Variable1" serializeAs="String">
                <value>Hallo Jasmin</value>
            </setting>
        </Test_Config.Properties.Settings>
    </userSettings>
</configuration>

_________________
Es ist soooo flauschig !!!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 02.07.15 11:52 
In deinem Projekt müßte unter dem Ordner Properties die Datei "Settings.cs" liegen.
Du kannst dann vom Programm aus direkt auf die (dadrin enthaltene) Klasse zugreifen:
ausblenden C#-Quelltext
1:
string s_hilf = Properties.Settings.Default.Variable1;					
Dhakiyah Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 327
Erhaltene Danke: 5

Windows 7
Delphi XE2
BeitragVerfasst: Do 02.07.15 12:13 
Jopp, das war es...

Wann verwende ich dann:
ausblenden C#-Quelltext
1:
Properties.Settings.Default.Variable1					


bzw. :
ausblenden C#-Quelltext
1:
ConfigurationManager.AppSettings["Variable1"]					


???

_________________
Es ist soooo flauschig !!!
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Do 02.07.15 12:23 
Die erste Variante ist richtig.

Der ConfigurationManager ist soweit ich weiß dafür da, eigene Daten mit einer eigenen Struktur in die config zu legen.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4701
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 02.07.15 13:34 
Eigentlich brauchst du das nur wenn du Dinge tun willst die man eigentlich nicht tun sollte. Zum Beispiel wenn du globale (nicht userabhängige) Einstellungen ändern willst. Die wären über die generierten Klassen read only. Oder du willst eine Konfig haben die nicht an der Anwendung hängt sondern an was anderes. Zum Beispiel wenn du eine eigene Assembly bereithälts (die man in anderen Anwendungen verwenden können soll) mit einer Konfiguration verteilen willst.