Nodes Felder

09/09/2008 - 17:59 von Fred Aurich | Report spam
Hallo,

zur Übermittlung von Infos möchte ich an einen Node Felder binden. Nun
möchte ich aber nicht für jeden unterschiedlichen (Inhaltlich) Node eine
separate Node-Klasse ableiten, sondern die Informationen mittels einer
Hashtabelle an das Node "binden".

System.Collections.Hashtable TnWerte = new System.Collections.Hashtable();
// Assocc-Array zur Item-Eigenschaftsübergabe

TnWerte.Add("Zeile1", "<B>Datenbank:</B> "+connection.Database);
// Name der Datenbank
TnWerte.Add("Zeile2", "<B>Server: </B>
"+connection.DataSource); // Name des Servers
TnWerte.Add("Zeile3", "<B>Server-Version:</B> " +
connection.ServerVersion); // Server-Version

Nachdem ich alle Informationen zusammengetragen habe, wollte ich die Tag
-Eigenschaft des Node nutzen, um meine Hashtabelle einzubinden:

Tn.Tag = TnWerte;
// Assoc-Array an die Tag Eigenschaft binden

So weit, so gut. Jetzt bekomme ich aber ein Problem, wenn ich auf meine
Hashwerte zugreifen möchte:

Direkter Zugriff auf Hashtabelle klappt

string a = TnWerte["Zeile1"].ToString();

Aber über die Tag Eigenschaft des Node?
MessageBox.Show(Tn.Tag["Zeile1"]);
ruft die Fehlermeldung :
Indizierung mit [] kann nicht auf einen Ausdruck vom Typ "object" angewendet
werden.
hervor!

Kann mir jemand die richtige Syntax zeigen?

PS.:
Im Debugger sehe ich auch die Hashtabellen-Werte. Der benutzt aber so etwas
wie:
(new
System.Collections.Hashtable.HashtableDebugView(((System.Collections.Hashtable)(Tn.Tag)))).Items[0] "<B>Datenbank:</B> master"
 

Lesen sie die antworten

#1 Martin Honnen
09/09/2008 - 18:33 | Warnen spam
Fred Aurich wrote:

System.Collections.Hashtable TnWerte = new System.Collections.Hashtable();


Tn.Tag = TnWerte;
// Assoc-Array an die Tag Eigenschaft binden

So weit, so gut. Jetzt bekomme ich aber ein Problem, wenn ich auf meine
Hashwerte zugreifen möchte:

Direkter Zugriff auf Hashtabelle klappt

string a = TnWerte["Zeile1"].ToString();

Aber über die Tag Eigenschaft des Node?
MessageBox.Show(Tn.Tag["Zeile1"]);
ruft die Fehlermeldung :
Indizierung mit [] kann nicht auf einen Ausdruck vom Typ "object" angewendet
werden.
hervor!



Versuche es mit einem cast
((Hashtable)Tn.Tag)["Zeile1"]

Martin Honnen MVP XML
http://JavaScript.FAQTs.com/

Ähnliche fragen