Benutzer mit den meisten Antworten
Dictionary => Beschränkung?

Frage
-
Hallo,
ich nutze ein Dictionary um Inhalte zu speichern und später auszulesen.
Dabei ist mir jetzt aufgefallen, dass nicht alle Inhalte, die aus einer XML-Datei eingelesen werden enthalten sind.
Nach 83 Elementen ist hier Ende. Es sind keine Weiteren Einträge im Dictionary. Gibt es ein Beschränkung bei der Anzahl an Einträgen?
Gruß
Peter
Wer grob fahrlässige Rechtschreibfehler findet, darf diese behalten ;0)
Antworten
-
Hallo Peter,
was soll das hier sein?
catch (Exception ex)
{ ex.Message; }Ich würde mal annehmen, dass deine Schleife auf Fehler läuft und dann das Dictionary zurückgegeben wird. Setz doch einfach mal einen Breakpoint auf die Zeile mit catch ...
Ggfs. fügst Du einen Key mehrfach ein (bzw. versuchst es). Das schlägt dann fehl.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Als Antwort vorgeschlagen Pawel Warmuth Donnerstag, 18. August 2011 09:27
- Als Antwort markiert Peter Sypek Donnerstag, 18. August 2011 09:33
Alle Antworten
-
Hallo Peter,
eine generelle Einschränkung gibt es AFAIK nicht. Wie liest Du die Inhalte denn ein?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Also ich lese eine XML-Datei aus die wie folgt aufgebaut ist.
<lbl_DateChanged> <de-DE><![CDATA[Datum (geändert)]]></de-DE> <en-US><![CDATA[Date (changed)]]></en-US> <fr-FR><![CDATA[language not translated]]></fr-FR> <zh-CN><![CDATA[language not translated]]></zh-CN> <es-ES><![CDATA[language not translated]]></es-ES> <zh-CHS><![CDATA[language not translated]]></zh-CHS> <ja-JP><![CDATA[language not translated]]></ja-JP> </lbl_DateChanged> <lbl_Department> <de-DE><![CDATA[Abteilung:]]></de-DE> <en-US><![CDATA[Department:]]></en-US> <fr-FR><![CDATA[language not translated]]></fr-FR> <zh-CN><![CDATA[language not translated]]></zh-CN> <es-ES><![CDATA[language not translated]]></es-ES> <zh-CHS><![CDATA[language not translated]]></zh-CHS> <ja-JP><![CDATA[language not translated]]></ja-JP> </lbl_Department>
Und hier die Methode mit der ich auslese!
public Dictionary<String, myTranslation> GetTranslatedDictionaryFromXML(String language) { /* Instanziierung des angepassten Dictionary's */ myDictionary = new Dictionary<String, myTranslation>(); string Key; myTranslation Value = null; try { /* Verarbeitung der XML-Datei, die Werte für unterschiedliche Sprachen ethält * Jedes keyNode anthält den Namen des Steuerelementes, dessen Content bzw. Text geändert werden soll! * Die ChildNodes der Keynodes enhalten im InnerText die übersetzten Texte */ XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("Languages.xml"); foreach (XmlNode rootNode in xmlDoc.SelectNodes("Languages")) { foreach (XmlNode regionNode in rootNode.ChildNodes) { foreach (XmlNode keyNode in regionNode.ChildNodes) { foreach (XmlNode value in keyNode.ChildNodes) { if (language == value.Name) { Value = new myTranslation { Value = value.InnerText }; /* Instanziierung des Values aus my Translation */ } } Key = keyNode.Name.ToString(); myDictionary.Add(Key, Value); /* Einfügen des Keys und des Values in my Dictionary */ } } } } catch (Exception ex) { ex.Message; } return myDictionary; }
public class myTranslation { string _value; public string Value { get { return this._value; } set { this._value = value; } } }
Aber mir ist beim Debuggen grade etwas aufgefallen, beim Aufruf der Methode Meldet VS => Es ist keine Quelle verfügbar??
Obwohl ich die dll eingebunden habe!GetTranslatedDictionaryFromXML(String language)
Gruß
Peter
Wer grob fahrlässige Rechtschreibfehler findet, darf diese behalten ;0)
-
Hallo Peter,
was soll das hier sein?
catch (Exception ex)
{ ex.Message; }Ich würde mal annehmen, dass deine Schleife auf Fehler läuft und dann das Dictionary zurückgegeben wird. Setz doch einfach mal einen Breakpoint auf die Zeile mit catch ...
Ggfs. fügst Du einen Key mehrfach ein (bzw. versuchst es). Das schlägt dann fehl.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Als Antwort vorgeschlagen Pawel Warmuth Donnerstag, 18. August 2011 09:27
- Als Antwort markiert Peter Sypek Donnerstag, 18. August 2011 09:33
-
Hallo Peter,
was soll das hier sein?
catch (Exception ex)
{ ex.Message; }Ich würde mal annehmen, dass deine Schleife auf Fehler läuft und dann das Dictionary zurückgegeben wird. Setz doch einfach mal einen Breakpoint auf die Zeile mit catch ...
Ggfs. fügst Du einen Key mehrfach ein (bzw. versuchst es). Das schlägt dann fehl.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
Ok, das wars es wurde ein Element mit dem gleichen Schlüssel wurde bereits hinzugefügt.
Da sieht man wieder wie elementar eine gute Fehlerbehandlung ist!
Vielen Dank!
Dann mach ich mich mal auf die Suche!
Gruß
Peter
Wer grob fahrlässige Rechtschreibfehler findet, darf diese behalten ;0)