2017-03-22 34 views
1

C#でプログラミングされたWindows FormsアプリケーションをIronPythonで拡張して、ソフトウェアのユーザーがスクリプトを使用してビジネスロジックを拡張できるようにしたいと考えています。私の考えは、強力なエディタを構文強調表示とIntelliSenseと統合することです。現時点では、どのエディタを使用すべきか、PythonスクリプトからC#でプログラミングされたアセンブリにアクセスする方法がわかりません。誰でも知っていますか? この問題を扱うチュートリアルがある場合、または市場に入手可能なコンポーネントがあれば、ソフトウェアに統合して必要な機能を得ることができます。あなたはIronPythonのから独自のアセンブリを呼び出し、それは例えばタイプとメンバーWindowsフォームアプリケーションへのIronPythonの統合

を見つけるためにリフレクションを使用したときに、私はクラスOrderPrice

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

を持って次にC#で、私は追加何もする必要はありいけない

答えて

2

ScriptScope

OrderPrice price = ..... 

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

への変数価格は、その後Pythonスクリプトであなただけのメンバーが

を必要として呼び出します
if price.ErrorText == None: 
    totalType = price.GetTariffType() 
    totalPrice = price.GetTotalPrice(totalType) 

そして、あなたはスクリプトからC#のオブジェクトをインスタンス化したい場合は、CLRモジュールを使用して参照

import clr 

clr.AddReferenceToFileAndPath(r"Entities.dll") 

from Entities import OrderPrice 

o = OrderPrice() 
+1

としてのdllのを追加する必要がありますinformatinは非常に有用であると考えられる、本当にありがとうございます、私がしようとします明日この情報で遊ぶこと。アプリケーションが実行されているときに構文強調表示とIntelliSenseでスクリプトを作成できるようにするために、Windowsフォームアプリケーションでエディタを使用するのが最善の経験をお持ちですか? – MartinS

+1

PythonでWindowsフォームをコード化したことはありませんが、私はメモ帳でPythonをコード化しています。 – Laurijssen

+0

問題は、私のアプリケーションに統合できるエディタが必要です。メモ帳++でこれが可能ならチェックします。 – MartinS

関連する問題