Вопрос

Я работаю над проектом, где мне нужно оценить некоторые формулы в VB.NET. Я использовал MS Script Control. Оценить некоторые из простых логических / математических формул.

Тем не менее, теперь я сейчас сталкиваюсь с рецензией строковых выражений, которые устанавливают переменные в моей программе к определенным значениям. Так, например, скажем, я получил следующее:

Dim netPrice As Decimal
Dim expressionFormula As String = "netPrice = 0"

Мне нужно быть в состоянии оценить «выразить формулу» и установить переменную NETPRICE к 0. Я пробую различные комбинации метода .addObject в контроле MS Script, но пока ничего не работал.

Я должен упомянуть, что этот пример предназначен только для иллюстрации, реальный сценарий включает в себя несколько объектов DataTable из набранного набора данных. В конце концов, некоторые поля в моем DataTable могут быть установлены на определенные постоянные значения, основанные на этих динамических выражениях.

Спасибо за помощь!

Это было полезно?

Решение

Для такого рода функциональность вам нужно будет написать свой собственный парсер и оценщик.

Посмотрите на LINQ Expression класс - это может помочь.

Кроме того, в зависимости от вашего подхода вы можете писать и компилировать динамические классы, используя CSharpCodeProvider Чтобы скомпилировать ваши выражения как C # классы / сборки.

Другие советы

Если вам нужно обрабатывать сложные выражения, может быть, эта библиотека может быть полезна: http://flee.codeplex.com/ ?

Динамический линьк это то, что вы ищете

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top