2017-02-08 22 views
1

Nun, müssen Sie C# -Code in IronPython zu übersetzen. Das aktuelle Problem ist der beste Weg zu finden Initialisierung wie dies zum Beispiel Traslate:Objekt Initialisierung in IronPython

case SomeObject.FieldCase: new SomeObject { Width = 600, Height = 400 }.Export(model_, stream); break;

Haben Sie irgendwelche Ideen, es ähnlich zu machen? Ich bin nur im Objektinitialisierungscode interessant, Fallanweisung wurde übersetzt. Für die Übersetzung benutzen wir Roslyn, damit wir alle Syntaxknoten bekommen können. In anderen Fällen, die ich machen smth wie folgt aus:

model = new Model; model.SomeField = field; model.SomeField2 = field2;

Aber diese Art und Weise ist nicht so einfach zu entwickeln.

+0

Bin ich recht in der Annahme, dass Sie nicht über den Fall und den Export Anruf kümmern, sondern nur Objektbau? Kann SomeObject in irgendeiner Weise geändert oder umschlossen werden? Hast du http://stackoverflow.com/a/2466207/468244 und http://stackoverflow.com/a/17283996/468244 gesehen? oder ist das aufdringlich? –

+0

Sie haben Recht, ich kümmere mich nur um die Konstruktion von Objekten. SomeObject kann nicht geändert oder umgebrochen werden. Namedupuples können helfen, denke ich. – ArgorAvest

+0

Nun, Tupel ist keine gute Idee, weil wir Methoden aus der Klasse aufrufen müssen. – ArgorAvest

Antwort

2

Gefunden. Ironpython kann C# -Klassen verwenden, mit Import und Änderung initializer Aufruf value= new SomeObject { Name = name } zu value = SomeObject(Name = name)