Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst CSharp Variablen aus XML Datei einlesen

Mitglied: Neomatic

Neomatic (Level 1) - Jetzt verbinden

03.02.2011, aktualisiert 04.02.2011, 7610 Aufrufe, 6 Kommentare

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.

9075c57dedbc9a7f53d42b07e910d54a - Klicke auf das Bild, um es zu vergrößern


Hier mal mein Code:

01.
 
02.
            AppSettingsReader config = new AppSettingsReader(); 
03.
 
04.
            string mailfrom = (string)config.GetValue("mailfrom", typeof(string)); 
05.
            string mailto = (string)config.GetValue("mailto", typeof(string)); 
06.
            string mailsubject = (string)config.GetValue("mailsubject", typeof(string)); 
07.
            string smtpsrv = (string)config.GetValue("smtpsrv", typeof(string)); 
08.
            int smtpport = (int)config.GetValue("smtpport", typeof(int)); 
09.
            string smtpuser = (string)config.GetValue("smtpuser", typeof(string)); 
10.
            string smtppasswd = (string)config.GetValue("smtppasswd", typeof(string)); 
11.
            bool secsmtp = (bool)config.GetValue("secsmtp", typeof(bool)); 
12.
        

Und hier die XML Datei die eingelesen werden soll:

01.
 
02.
<?xml version="1.0" encoding="utf-8"?> 
03.
<configuration> 
04.
  <appSettings> 
05.
    <add key="mailfrom" value="0815@abc.de" /> 
06.
    <add key="mailto" value="0815@def.de" /> 
07.
    <add key="mailsubject" value="0815 Runde" /> 
08.
    <add key="smtpsrv" value="pop.def.de" /> 
09.
    <add key="smtpport" value="25" /> 
10.
    <add key="smtpuser" value="benutzer" /> 
11.
    <add key="smtppasswd" value="passwort" /> 
12.
    <add key="secsmtp" value="false" /> 
13.
  </appSettings> 
14.
</configuration> 
15.
 


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.
Mitglied: perseues
04.02.2011 um 08:41 Uhr
Hallo Neomatic,

nun, wenn das der Originalcode ist, hat der Compiler recht. Der Wert "mailfrom" ist nicht da. Du hast da zweimal "mailto" stehen.

Grüße perseues
Bitte warten ..
Mitglied: Neomatic
04.02.2011 um 09:04 Uhr
Hallo perseues,

danke für den Hinweis. Hab es gestern einfach nicht mehr gesehen. War wohl zu spät.

Habs korrigiert, allerdings immernoch die selbe Fehlermeldung.


Gruß

Neomatic
Bitte warten ..
Mitglied: perseues
04.02.2011 um 16:18 Uhr
versuch im Programm mal:

01.
using System.Configuration;
und dann den Zugriff einfach per:

01.
string mailfrom = System.Configuration.ConfigurationSettings.AppSettings["mailfrom"]; 
02.
...
so klappts bei mir zumindest.


Edit:

hier mal kurz mein Test mit Deiner App.config:

01.
using System; 
02.
using System.Collections.Generic; 
03.
using System.Linq; 
04.
using System.Text; 
05.
using System.Configuration; 
06.
 
07.
namespace ConsoleApplication1 
08.
09.
    class Program 
10.
11.
        static void Main(string[] args) 
12.
13.
            string mailto = System.Configuration.ConfigurationSettings.AppSettings["mailto"]; 
14.
            string mailfrom = System.Configuration.ConfigurationSettings.AppSettings["mailfrom"]; 
15.
            Console.WriteLine(mailto); 
16.
            Console.WriteLine(mailfrom); 
17.
18.
19.
}
Bitte warten ..
Mitglied: Neomatic
05.02.2011 um 00:10 Uhr
Hallo,

soweit funktioniert der Code. Allerdings meckert er dann folgendes an:


Eine implizierte Konvertierung von "string" in "bool" ist nicht möglich

Die beste Übereinstimmung für die überladene System.Net.Mail.SmtpClient.SmtpClient(string, int)-Methode hat einige ungültige Argumente.

2-Argument: Kann nicht von "string" in "int" konvertiert werden.


All diese Fehler zeigen auf die Zeile:

01.
SmtpClient client = new SmtpClient(smtpsrv, smtpport);

Dann hat er noch folgenden Fehler:

Eine implizite Konvertierung vom Typ "string" in "bool" ist nicht möglich.


in der Zeile :

01.
client.EnableSsl = secsmtp;

Ich habe versucht die Variable "smtpport" mit "int" und "secsmtp" mit "bool" zu deklarieren, allerdings gibt es da noch mehr fehler.

Wie kann ich den Fehler beheben, bzw. was bedeuten diese Meldungen?

Gruß

Neomatic
Bitte warten ..
Mitglied: perseues
05.02.2011 um 10:24 Uhr
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:

01.
            string smtpport = System.Configuration.ConfigurationSettings.AppSettings["smtpport"]; 
02.
            string secsmtp = System.Configuration.ConfigurationSettings.AppSettings["secsmtp"]; 
03.
            int intsmtpport = Convert.ToInt32(smtpport); 
04.
            Console.WriteLine(intsmtpport); 
05.
            bool boolsec = Convert.ToBoolean(secsmtp); 
06.
            Console.WriteLine(boolsec);
Grüße perseues
Bitte warten ..
Mitglied: Neomatic
05.02.2011 um 21:53 Uhr
Hallo,

vielen Dank es funktioniert.

Ich musste erst noch

01.
using System.Reflection;


hinzufügen damit es funktioniert. Er bringt zwar noch folgende Warnung:

"System.Configuration.ConfigurationSettings.AppSettings" ist veraltet: ""This method is obsolete, it has been replaced by System.Configuration!System.Configuration.ConfigurationManager.AppSettings""


Aber darum kümmere ich mich später. Erstmal soll das Programm lauffähig sein, dann kann optimiert werden.


Vielen Dank für deine Hilfe.

Gruß

Neomatic
Bitte warten ..
Ähnliche Inhalte
Microsoft Office

Alle XML Dateien eines Ordners in Excel per VBA einlesen

Frage von thomas1972Microsoft Office5 Kommentare

Guten Morgen, ich möchte bestimmte XML Dateien eines Ordner in eine Mappe hintereinander einlesen. Eine Datei bekomme ich ohne ...

XML

Einlesen bestimmten Werten, Texten aus XML- Datei in EXCEL

gelöst Frage von EverestXML11 Kommentare

Hallo Experten, ich möchte in Excel die Werte/Texte aus einer XML-Datei direkt lesen ohne sie zu importieren. Kann jemand ...

Batch & Shell

Powershell intelligent Variablen einlesen

Frage von PinkFLuffyUnicornBatch & Shell5 Kommentare

Hi, ich habe folgendes Problem: Ich hzabe eine Textdatei aus welcher ich gerne zeilenweise variablen auslesen und in einer ...

Batch & Shell

Variable aus VBS in Batch einlesen

gelöst Frage von racer1601Batch & Shell4 Kommentare

Hallo ich habe das Problem das ich die Variable "Ordner" aus einem VBS Script nicht in meine Batch bekomme. ...

Neue Wissensbeiträge
Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 5 StundenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 10 StundenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Microsoft Office

MS Office 2019 ohne OneNote - OneNote App speichert nur in Cloud

Information von Deepsys vor 21 StundenMicrosoft Office2 Kommentare

Microsoft zeigt deutlich wohin alles bei Ihnen geht, OneNote 2019 wird es nicht mehr geben, und die Windows 10 ...

Humor (lol)

Warum man sein Gast-WLAN nicht beliebig nennen sollte

Erfahrungsbericht von Henere vor 1 TagHumor (lol)5 Kommentare

Servus, mal was aus dem Alltag. Zu Hause. Eigentlich wollte ich nur einen weiteren WLAN-AP ins Netz bringen, damit ...

Heiß diskutierte Inhalte
Windows Netzwerk
LAN nur 10MB pro s trotz gb lan
Frage von tsunamiWindows Netzwerk21 Kommentare

Hallo zusammen, ich brauche mal wieder einen Anstoß in die richtige Richtung. Ich habe einen Windows 10 pc mit ...

Festplatten, SSD, Raid
Server SSD: NVMe PCIe 3.0 RAID?
Frage von bouneeFestplatten, SSD, Raid15 Kommentare

Hallo liebe Admins, mir stellt sich gerade die Frage, ob ein neuer Server mit SSD NVMe PCIe 3.0 Sinn ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Windows 10
Windows 10 Startmenü-Einstellungen Systemweit festlegen
Frage von flotautWindows 1013 Kommentare

Guten Morgen liebe Admins, wir möchten bei uns am Lehrstuhl demnächst auf Windows 10 umsteigen. Wir installieren unsere PC's ...