app.config lesen

liam

Mitglied
Hi,

möchte aus dieser xml datei etwas lesen

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="seb">
<section name="Path" type="sebdev.util.config.PathPropertiesHandler,sebdev" />
<section name="Database" type="sebdev.util.config.DatabasePropertiesHandler,sebdev" />
<seb> //hier ist der fehler
<Path ExecDir="test" TempDir="temp" DataDir="data" />
<Database Typ="typ" Server="server" User="user" Pass="pass" DB="db" />
</seb>
</sectionGroup>
</configSections>
</configuration>

zum auslesen benutze ich diese klassen

Code:
public class PathPropertiesHandler:IConfigurationSectionHandler
{
public virtual object Create(object parent,object context,XmlNode node)
{
PathProperties pp;
pp = new PathProperties((PathProperties)parent);
pp.LoadAttrFromXml(node);
return pp;
}
}
public class PathProperties
{
string _ExecDir;
string _DataDir;
string _TempDir;
public string ExecDir{get{return _ExecDir;}}
public string DataDir{get{return _DataDir;}}
public string TempDir{get{return _TempDir;}}
public PathProperties(PathProperties parent)
{
if (parent!=null)
{
_ExecDir = parent._ExecDir;
_DataDir = parent._DataDir;
_TempDir = parent._TempDir;
}
}
internal void LoadAttrFromXml(XmlNode n)
{
XmlAttributeCollection ac = n.Attributes;
_ExecDir = ac["ExecDir"].Value;
_TempDir = ac["TempDir"].Value;
_DataDir = ac["DataDir"].Value;
}
}
bekomme immer den fehler unbekanntes element in zeile 7 der xml datei
 
Versuchs doch mal so:
Code:
IDictionary SelectedDevices = (IDictionary) ConfigurationSettings.GetConfig("seb");
string Value = (string) SelectedDevices["Path"]
Sollte eigentlich funktionieren.

MFG cosmo
 
jetzt kommt der Fehler ne Zeile später :)
denke mal mach es über appsettings ist zwar net so schön aber funktioniert, ausser jemand hat ne idee wie ich es hinbekommen könnte
 
HTML:
<?xmlversion="1.0"encoding="utf-8"?>
<configuration>
	<configSections>
		<sectionGroup name="seb">
			<section name="Path"type="sebdev.util.config.PathPropertiesHandler,sebdev"/>
			<section name="Database"type="sebdev.util.config.DatabasePropertiesHandler,sebdev"/>
		</sectionGroup>
	</configSections>
		
	<PathExecDir="test"TempDir="temp"DataDir="data"/>
	<DatabaseTyp="typ"Server="server"User="user"Pass="pass"DB="db"/>
</configuration>
Ein Beispiel aus der MSDN ( aber mit meinen Bezeichnern ):
HTML:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<configSections>
		<section name="SelectedDevices"
				 type="System.Configuration.SingleTagSectionHandler" /> 
		<section name="Translation_DE"
				 type="System.Configuration.DictionarySectionHandler"/>
	</configSections>

	<SelectedDevices VideoDevice="1" AudioDevice="1" />
	<Translation_DE>
      		<add key="myKey" value="myValue"/>
	</Translation_DE>
</configuration>

Ich hoffe das hilft Dir.

MFG cosmo
 
Du kannst alles diesbezüglich in der MSDN finden.
Google Such String: site://www.microsoft.com c# Suchbegriff
Oder gib im VS Hilfe-Index einfach mal "configsections" ein.

MFG cosmo
 
Danke musste die Xml ein wenig umstellen jetzt geht es.
Noch eine Frage, kann man in der app.config auf eine andere Xml Datei verweisen das er diese benutzt?
 
Wollte in der Datei im Anwendungsverzeichniss auf die Config in

Dokumente und.... verweissen, damit ich nicht Schreibrechte für dieses Verzeichniss benötige.
 
Jetzt komm ich nicht mehr mit. Ich versteh nicht ganz was Du machen willst.
Nimm doch als zusätzliche Config ein XML und intialisierst dein Prog damit zusätzlich.
Kannst ja in deiner Config angeben wie die zuzätlichen XML-Dateien heißen und wo sie befinden.
Hier ein [thread=176748]Ultra Thread[/thread] (500 Klicks)dazu.

MFG cosmo
 
Zurück