# Evaluation Contexts The extension methods and the `CompiledExpression` all take an expression (as a string) and a second parameter, the `EvaluationContext`. The context can normally be ignored, but is used to set specific environment-variables in case the defaults don't work out: | Property | Purpose | |----------|---------| | `EvaluationContext.Resource` | Gets or sets the `PocoNode` returned by the `%resource` environment variable. Default is null. | | `EvaluationContext.RootResource` | Gets or sets the `PocoNode` returned by the `%rootResource` environment variable. Default is null. | | `EvaluationContext.Environment` | A dictionary of custom environment variables, made available in the expression under the `%` prefix followed by the variable name. | | `EvaluationContext.Tracer` | A delegate that handles the output for the `trace()` function. | | `FhirEvaluationContext.ElementResolver` | A delegate that resolves a uri to an instance of FHIR data (a `PocoNode`). This callback is used by the FHIR-specific method `resolve()`. | | `FhirEvaluationContext.TerminologyService` | The terminology service used by the FHIR-specific method `memberOf()`. | Note that `FhirEvaluationContext` (a subclass of `EvaluationContext`) is only used by the POCO extension methods for FhirPath, as it provides the properties for the FHIR-specific `resolve()` and `memberOf()` functions.