Мне нужно разрешить моим пользователям определять формулы, которые будут вычислять значения на основе данных. НапримерКак разрешить пользователям определять финансовые формулы в приложении C#
//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 на одного клиента)
- Пункт (около 10000 на каждую конфигурацию клиента)
Итак, я выполню петлю уровня 3. На каждом уровне «Конфигурация» я запустил транзакцию БД и скомпилировал форумла, каждый «Предмет» будет использовать те же транзакционные + скомпилированные формулы (на каждую конфигурацию должно быть 20 формул, каждый элемент будет использовать их все).
Это еще больше усложняет ситуацию, потому что я не могу просто использовать службы компилятора, так как это приведет к продолжению использования памяти. Я не могу использовать новый AppDomain для каждого цикла «Конфигурация», потому что некоторые из ссылок, которые мне нужно передать, не могут быть распределены.
Любые предложения?
--Update-- Это то, с чем я пошел, спасибо! http://www.codeproject.com/Articles/53611/Embedding-IronPython-in-a-C-Application
Downvoted для неработающей ссылки. –
Спасибо. Ссылка исправлена. Теперь вы можете удалить свое голосование :) –