Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Frage Entwicklung VB for Applications

Mitglied: Neomatic

Neomatic (Level 1) - Jetzt verbinden

03.02.2011, aktualisiert 04.02.2011, 7194 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
XML
XML Datei Fehler? (1)

Frage von Patrick-IT zum Thema XML ...

Batch & Shell
Script zum XML Datei Umschreiben (12)

Frage von cberndt zum Thema Batch & Shell ...

PHP
gelöst Externe XML-Datei in PHP auslesen (18)

Frage von Akrosh zum Thema PHP ...

Windows Server
Windows Bereitstellungsdienst und .xml-Datei erstellen (1)

Frage von Freddy88 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...