2016-11-11 2 views
0

erstellen Wesentlichen so etwas wie den folgenden Code als Ausgabe erhalten von meinem CodeDOM Ich bin mit dem Ziel:Wie einen anonymen Typ mit CodeDOM

var foo = new { variable1 = "value", variable2 = 5 }; 

Ich werde nicht nur verwenden es für eine variable Zuordnung aber ich wollte Ein einfaches Beispiel, wie ein anonymer Typ erstellt wird. Ich bin nicht sicher, dass dieser genaue Code möglich ist, aber wenn es irgendeine Art von Arbeit gibt, auf die Sie mich hinweisen könnten, wäre ich sehr dankbar.

Ich habe mir die CodeObjectCreateExpression angesehen und ich glaube nicht, dass das tun wird, wonach ich suche, und ich kann nichts anderes finden, das mir nahe kommt.

Vielen Dank im Voraus für alle und jede Hilfe.

+0

Ich denke, Sie sollten stattdessen Tupel verwenden. –

+0

warum nicht um dynamische Typen herumspielen? Beispiel: http://stackoverflow.com/questions/3740021/how-to-dynamic-new-anonymous-class – Innat3

+1

CodeDom ist eine Sache aus der Vergangenheit. Es hat nie wirklich den Entwicklungen von .NET (lies "C#") gefolgt. Microsoft hat stattdessen alle Anstrengungen auf Roslyn konzentriert. Die einzige Lösung ist CodeDom Snippets zu verwenden –

Antwort

2

CodeDOM versucht, sprachneutral zu sein und wurde für eine sehr lange Zeit nicht aktualisiert, deshalb glaube ich nicht, dass Sie einen seiner integrierten Typen dafür verwenden können. Aber Sie können CodeSnippetExpression verwenden, um diesen Code als Zeichenfolge zu injizieren:

var expression = new CodeSnippetExpression("new { variable1 = \"value\", variable2 = 5 }"); 
var statement = new CodeVariableDeclarationStatement("var", "foo", expression); 
+0

Das reicht für den Fall, den ich habe, wusste nicht, dass Sie das tun könnten! Vielen Dank – abarnybox

Verwandte Themen