CSharp Variablen aus XML Datei einlesen
Ich möchte aus einer XML Datei Werte auslesen und in Variablen übergeben
Hallo,
eins vorweg ich programmiere erst seit kurzen mit C# und habe daher noch nicht viel erfahrung. Daher bitte ich etwas um Nachsicht wenn ich etwas nicht direkt verstehe oder mein Code etwas durcheinander ist.
Aber zum eigentlichen:
Ich möchte Werte aus einer XML Datei einlesen und an Variablen übergeben. Ich habe bereits etwas experimentiert und einen Code gebastelt. Die Fehlerliste zeigt 0 Fehler aber jedes mal wenn die Variablen aus der XML Datei gelesen werden soll, sagt er mit das der Wert nicht unter appSettings zu finden ist. Dabei steht er drin.
Hier mal mein Code:
Und hier die XML Datei die eingelesen werden soll:
Sieht jemand den Fehler?
Oder hättet ihr einen besseren weg?
Ich wäre für Hilfe wirklich dankbar.
Gruß
Neomatic
Edit1: doppelten mailto Eintrag geändert.
Hallo,
eins vorweg ich programmiere erst seit kurzen mit C# und habe daher noch nicht viel erfahrung. Daher bitte ich etwas um Nachsicht wenn ich etwas nicht direkt verstehe oder mein Code etwas durcheinander ist.
Aber zum eigentlichen:
Ich möchte Werte aus einer XML Datei einlesen und an Variablen übergeben. Ich habe bereits etwas experimentiert und einen Code gebastelt. Die Fehlerliste zeigt 0 Fehler aber jedes mal wenn die Variablen aus der XML Datei gelesen werden soll, sagt er mit das der Wert nicht unter appSettings zu finden ist. Dabei steht er drin.
Hier mal mein Code:
AppSettingsReader config = new AppSettingsReader();
string mailfrom = (string)config.GetValue("mailfrom", typeof(string));
string mailto = (string)config.GetValue("mailto", typeof(string));
string mailsubject = (string)config.GetValue("mailsubject", typeof(string));
string smtpsrv = (string)config.GetValue("smtpsrv", typeof(string));
int smtpport = (int)config.GetValue("smtpport", typeof(int));
string smtpuser = (string)config.GetValue("smtpuser", typeof(string));
string smtppasswd = (string)config.GetValue("smtppasswd", typeof(string));
bool secsmtp = (bool)config.GetValue("secsmtp", typeof(bool));
Und hier die XML Datei die eingelesen werden soll:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="mailfrom" value="0815@abc.de" />
<add key="mailto" value="0815@def.de" />
<add key="mailsubject" value="0815 Runde" />
<add key="smtpsrv" value="pop.def.de" />
<add key="smtpport" value="25" />
<add key="smtpuser" value="benutzer" />
<add key="smtppasswd" value="passwort" />
<add key="secsmtp" value="false" />
</appSettings>
</configuration>
Sieht jemand den Fehler?
Oder hättet ihr einen besseren weg?
Ich wäre für Hilfe wirklich dankbar.
Gruß
Neomatic
Edit1: doppelten mailto Eintrag geändert.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 160098
Url: https://administrator.de/contentid/160098
Ausgedruckt am: 22.11.2024 um 04:11 Uhr
6 Kommentare
Neuester Kommentar
versuch im Programm mal:
und dann den Zugriff einfach per:
so klappts bei mir zumindest.
Edit:
hier mal kurz mein Test mit Deiner App.config:
using System.Configuration;
und dann den Zugriff einfach per:
string mailfrom = System.Configuration.ConfigurationSettings.AppSettings["mailfrom"];
...
so klappts bei mir zumindest.
Edit:
hier mal kurz mein Test mit Deiner App.config:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
namespace ConsoleApplication1
{
class Program
{
static void Main(string args)
{
string mailto = System.Configuration.ConfigurationSettings.AppSettings["mailto"];
string mailfrom = System.Configuration.ConfigurationSettings.AppSettings["mailfrom"];
Console.WriteLine(mailto);
Console.WriteLine(mailfrom);
}
}
}
O.K. App.settings gibt immer einen String zurück. (Wußte ich bisher auch nicht, da ich bisher nur Strings ausgelesen habe). Macht nichts. Du mußt jetzt den String nach Integer und Bool konvertieren. Dazu gibt es die Methoden .ToInt32 und .ToBoolean. Also für das Beispiel von mir:
Grüße perseues
string smtpport = System.Configuration.ConfigurationSettings.AppSettings["smtpport"];
string secsmtp = System.Configuration.ConfigurationSettings.AppSettings["secsmtp"];
int intsmtpport = Convert.ToInt32(smtpport);
Console.WriteLine(intsmtpport);
bool boolsec = Convert.ToBoolean(secsmtp);
Console.WriteLine(boolsec);
Grüße perseues