ユーザーがデータに基づいて値を計算する式を定義できるようにする必要があります。例えば
//Example 1
return GetMonetaryAmountFromDatabase("Amount due") * 1.2;
//Example 2
return GetMonetaryAmountFromDatabase("Amount due") * GetFactorFromDatabase("Discount");
/ * + - 操作を許可し、ローカル変数を割り当てて IF ステートメントを実行する必要があります。
var amountDue = GetMonetaryAmountFromDatabase("Amount due");
if (amountDue > 100000) return amountDue * 0.75;
if (amountDue > 50000) return amountDue * 0.9;
return amountDue;
私は次の構造を持っているので、シナリオは複雑です..
- 顧客(数百)
- 構成 (顧客ごとに約 10)
- 項目 (顧客構成ごとに約 10,000)
そこで、3 レベルのループを実行します。各「構成」レベルで、DB トランザクションを開始してフォーラムをコンパイルします。各「アイテム」は同じトランザクション + コンパイルされた数式を使用します (構成ごとに約 20 の数式があり、各アイテムはそれらすべてを使用します)。
メモリ使用量が継続的に増加するため、コンパイラ サービスだけを使用することはできないため、これは事態をさらに複雑にします。渡す必要のある参照の一部をマーシャリングできないため、各「構成」ループ レベルごとに新しい AppDomain を使用できません。
助言がありますか?
--更新--これは私が行ったものです、ありがとう! http://www.codeproject.com/Articles/53611/Embedding-IronPython-in-aC-Application