Autor Beitrag
rittergig
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Mo 29.08.11 14:30 
Ich möchte zur Laufzeit ein anonymes Objekt erstellen:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 29.08.11 14:32 
Kannst du nicht ohne großen Aufwand. Daher die Gegenfrage: Warum?

_________________
>λ=
rittergig Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Mo 29.08.11 15:03 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Mo 29.08.11 15:12 
Suchst Du vielleicht so was hier?
ausblenden C#-Quelltext
1:
2:
dynamic routedValues = new ExpandoObject();
((IDictionary<stringobject>)routedValues).Add("Parameter1""wert1");

LG
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: 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