Domanda

Sto lavorando su un progetto in cui ho bisogno di valutare alcune formule in VB.NET. Sto usando il MS Script Control di valutare alcune delle semplici formule logiche / matematiche.

Tuttavia, sono ora di fronte a che fare con le espressioni di stringa che le variabili impostate nel mio programma a certi valori. Così, per esempio, diciamo che ho ottenuto il seguente:

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

ho bisogno di essere in grado di valutare "expressionFormula" e impostare la variabile netPrice a 0. Ho provato diverse combinazioni di metodo .AddObject nel controllo MS Script, ma niente ha funzionato ancora.

Vorrei ricordare questo esempio è solo a scopo illustrativo, lo scenario reale coinvolge diversi oggetti DataTable da un DataSet tipizzato. Alla fine, alcuni dei campi nel mio DataTable potrebbe essere necessario impostare a valori costanti specifiche basate su queste espressioni dinamiche.

Grazie per l'aiuto!

È stato utile?

Soluzione

Per questo tipo di funzionalità, sarà necessario scrivere il proprio parser e valutatore.

Date un'occhiata al Linq Expression classe -. può aiutare

In alternativa, a seconda del vostro approccio, si può essere in grado di scrivere e classi dinamiche compilazione usando la CSharpCodeProvider per compilare le espressioni come classi C # / assiemi.

Altri suggerimenti

Se si deve gestire espressioni complesse, forse questa libreria può essere utile: http://flee.codeplex.com/ ?

dinamica LINQ è quello che stai cercando per

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top