/// <summary>Registers a global constant.</summary> /// <exception cref="Exception">Throws an exception if the global constant name already exists.</exception> /// <param name="name">The global constant name.</param> /// <param name="value">The global constant value.</param> /// <returns>A Fluent EvalContext.</returns> public EvalContext RegisterGlobalConstant(string name, object value) { if (!AliasGlobalConstants.TryAdd(name, Expression.Constant(value))) { throw new Exception(string.Format(ExceptionMessage.Unexpected_AliasRegistered, name)); } return(this); }
/// <summary>Unregisters a global constant.</summary> /// <param name="aliases">The global constant name.</param> /// <returns>An Fluent EvalContext.</returns> public EvalContext UnregisterGlobalConstant(params string[] aliases) { foreach (var alias in aliases) { ConstantExpression value; AliasGlobalConstants.TryRemove(alias, out value); } return(this); }
/// <summary>Unregisters all kind of alias (Extension Methods, Names, Static Members, Types and Values).</summary> /// <returns>An Fluent EvalContext.</returns> public EvalContext UnregisterAll() { AliasExtensionMethods.Clear(); AliasGlobalConstants.Clear(); AliasGlobalVariables.Clear(); AliasNames.Clear(); AliasStaticMembers.Clear(); AliasTypes.Clear(); return(this); }