Com.RickSeven.FormulaEngine.Core
1.0.1
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Com.RickSeven.FormulaEngine.Core --version 1.0.1
NuGet\Install-Package Com.RickSeven.FormulaEngine.Core -Version 1.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Com.RickSeven.FormulaEngine.Core" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Com.RickSeven.FormulaEngine.Core" Version="1.0.1" />
<PackageReference Include="Com.RickSeven.FormulaEngine.Core" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Com.RickSeven.FormulaEngine.Core --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Com.RickSeven.FormulaEngine.Core, 1.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=Com.RickSeven.FormulaEngine.Core&version=1.0.1
#tool nuget:?package=Com.RickSeven.FormulaEngine.Core&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Com.RickSeven.FormulaEngine
A powerful and flexible formula evaluation engine using Roslyn Scripting with dynamic runtime context. Ideal for scenarios where business logic needs to be defined at runtime through C# expressions or formulas.
🚀 Features
- Evaluate C# expressions dynamically
- Inject dynamic variables and objects into script context
- Auto-generates strongly-typed global context types at runtime
- Supports full Roslyn scripting capabilities
- Handles nested objects, Math functions, string ops, and more
- No external dependencies other than Roslyn and BCL
🎞 Installation
Install via NuGet:
dotnet add package Com.RickSeven.FormulaEngine.Core --version 1.0.0
Or using the NuGet Package Manager:
PM> Install-Package Com.RickSeven.FormulaEngine.Core
🧠 Usage Example
var context = new Dictionary<string, object>
{
{ "revenue", 10000 },
{ "cost", 7000 },
{ "margin", 0.3 },
{ "desc", "Result is: " }
};
string formula = "desc + ((revenue - cost) * margin).ToString()";
var engine = new FormulaEngine();
var result = engine.Evaluate(formula, context);
// Output: "Result is: 900"
Console.WriteLine(result);
Supports advanced expressions:
var context = new Dictionary<string, object>
{
{ "baseValue", 2.0 },
{ "exponent", 3.0 }
};
string formula = "Math.Pow(baseValue, exponent)";
var engine = new FormulaEngine();
var result = engine.Evaluate(formula, context);
// Output: 8.0
Console.WriteLine(result);
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- Microsoft.CodeAnalysis.CSharp.Scripting (>= 4.13.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.