Entwickler-Ecke
Sonstiges (.NET) - Anonymen Datentyp zur Laufzeit erstellen
rittergig - Mo 29.08.11 14:30
Titel: Anonymen Datentyp zur Laufzeit erstellen
Ich möchte zur Laufzeit ein anonymes Objekt erstellen:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| var routedValues = new { Parameter1 = "wert", Parameter2 = "wert2", Parameter3 = "wert3", }; |
Wie kann ich einen anonymen Datentyp zur Laufzeit erzeugen, um die Properties ("Parameter") mit Werten via eine Schleife hinzuzufügen?
Grüße, Peter
Kha - Mo 29.08.11 14:32
Kannst du nicht ohne großen Aufwand. Daher die Gegenfrage: Warum?
rittergig - Mo 29.08.11 15:03
Kha hat folgendes geschrieben : |
Kannst du nicht ohne großen Aufwand. Daher die Gegenfrage: Warum? |
Bei ASP.NET MVC kann ich mit der Methode "Html.ActionLink" einen Links erstellen. Die Parameter müssen als anonymes Objekt "routedValues" übergeben werden.
Ich möchte meinen MVC Model eine Methode hinzufügen, das Objekt mit den notwendigen Parametern generiert.
Anders gesagt: Ich will, dass das alle Properties des Modells automatisch als Parametern bei Links übergeben werden.
- dafür werden alle Properties via Reflections ermittelt (das funktioniert bereits)
- nun soll das Parameter-Objekt erstellt werden
Grüße, Peter
Trashkid2000 - Mo 29.08.11 15:12
Suchst Du vielleicht so was hier?
C#-Quelltext
1: 2:
| dynamic routedValues = new ExpandoObject(); ((IDictionary<string, object>)routedValues).Add("Parameter1", "wert1"); |
LG
Kha - Mo 29.08.11 15:23
Interessante Idee, aber bin mir nicht sicher, ob das der Reflection-Code von MVC berücksichtigt. Nötig ist das aber sowieso nicht, es gibt selbstverständlich immer Überladungen, die ein gewöhnliches RouteValueDictionary entgegennehmen.
Und deswegen in der Frage immer lieber das eigentliche Ziel erwähnen ;) .
Edit: Gut, der Variablenname wäre natürlich ein Hinweis gewesen :lol: .
rittergig - Mo 29.08.11 17:15
Ihr habt recht, ich habe die überladene Methode, bei welcher ich ein Dictionary mit Parametern übergeben kann, übersehen. (Asche auf mein Haupt)
Grüße, Peter
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!