public bool?TryGetValue(string enableInfo, EnableInfoVariables variables) { bool?result = null; try { EnableInfoData data; if (values.TryGetValue(enableInfo, out data)) { result = data.TryGetResult(variables); } else { data = new EnableInfoData(enableInfo); result = data.TryGetResult(variables); values.Add(enableInfo, data); } } catch (EnableInfoException) { // Ignore any errors that occur when evaluating the enable info expression. } return(result); }
internal bool?TryGetResult(EnableInfoVariables variables) { bool result; if (!resultCache.TryGetValue(variables, out result)) { if (expression != null) { result = new EnableInfoInterpreter(variables).Evaluate(expression); resultCache.Add(variables, result); } else { return(null); } } return(result); }