virtual public object GetVariableValue() { object retval = null; if (VariableRawValue.Contains(DataContext.VARIABLE_START)) { if (VariableRawValue.StartsWith(DataContext.VARIABLE_START) && VariableRawValue.EndsWith(DataContext.VARIABLE_END)) { return(MyDataContext.CalculateVariableObjectValue(VariableRawValue)); } else { //complex string retval = ResolveDataContextVariables(VariableRawValue, MyDataContext); if (JsonData.ValueIsObject((string)retval) || JsonData.ValueIsArray((string)retval)) { retval = new JsonData((string)retval); } return(retval); } } else { double dVal; bool bVal; if (Double.TryParse(VariableRawValue, out dVal)) { return(dVal); } else if (Boolean.TryParse(VariableRawValue, out bVal)) { return(bVal); } else { if (JsonData.ValueIsObject(VariableRawValue) || JsonData.ValueIsArray(VariableRawValue)) { return(new JsonData(VariableRawValue)); } else { return(VariableRawValue); } } } }