2017-03-22 2 views
1

Ich möchte meine in C# programmierte Windows Forms-Anwendung mit IronPython erweitern, damit die Benutzer der Software die Geschäftslogik mit Skripts erweitern können. Meine Idee ist es, einen leistungsstarken Editor mit Syntax-Highlighting und IntelliSense zu integrieren. Im Moment habe ich keine Ahnung, welchen Editor ich verwenden soll und wie ich auf meine in C# programmierten Assemblies aus dem Python Script zugreifen kann. Weiß jemand, ob es irgendein Tutorial gibt, das dieses Problem abdeckt oder ob es irgendwelche Komponenten auf dem Markt gibt, die ich in meine Software integrieren kann, um die Funktionalität zu bekommen, die ich brauche.Integration von IronPython in eine Windows Forms-Anwendung

Antwort

2

Sie nicht nichts zu tun haben, wenn Sie Ihre eigenen Baugruppen von Ironpython Aufruf, es Reflexion verwendet Typen und Mitglieder zu finden

Zum Beispiel habe ich eine Klasse OrderPrice

public class OrderPrice 
{ 
    public decimal GetTotalPrice(Tariff.enumTariffType tariffType) 
    { 
    //.... 
    } 
} 

Dann in C# ich hinzufügen müssen der variable Preis an den ScriptScope

OrderPrice price = ..... 

ScriptScope scope = scriptEngine.CreateScope(); 
scope.SetVariable("price", price); 

Dann in der python-Skript, rufen Sie nur die Mitglieder benötigt

if price.ErrorText == None: 
    totalType = price.GetTariffType() 
    totalPrice = price.GetTotalPrice(totalType) 

Und wenn Sie C# Objekte aus dem Skript instanziieren möchten, müssen Sie den clr-Modul verwenden und fügen Sie DLL als Referenz

import clr 

clr.AddReferenceToFileAndPath(r"Entities.dll") 

from Entities import OrderPrice 

o = OrderPrice() 
+1

Vielen Dank, scheint die informatin sehr hilfreich zu sein, werde ich versuchen, um morgen mit dieser Information herumzuspielen. Haben Sie Erfahrung damit, welcher Editor am besten in einer Windows Forms-Anwendung verwendet wird, um die Skripts mit Syntaxhervorhebung und IntelliSense beim Ausführen der Anwendung zu erstellen? – MartinS

+1

Nie Windows Forms in Python codiert, aber ich Code Python in Notepad ++ – Laurijssen

+0

Das Problem ist, dass ich eine Art von Editor brauche, die ich in meiner Anwendung integrieren kann. Ich werde prüfen, ob dies mit Notepad ++ möglich ist. – MartinS