Fork me on GitHub

Modules

Modules are used to load solution definitions in a modular way. If your dependency injection container for example allows you to acquire all classes implementing IEvaluationEngineModule, you can use the container to load all definitions from all your code and plug-ins automatically.

Define a Module

A module is defined by implementing IEvaluationEngineModule:

When a solution is defined in several places in the code, make sure that the aggregator is only defined once. In a plug-in system, I suggest you define the strategy and aggregator somewhere in the core. And the modules only add expressions.

Load Module into Evaluation Engine

Modules are loaded into the evaluation engine by calling Load: