private static object GetValueFromPath(object data, string path, out bool partialMatch) { partialMatch = false; var value = ValueGetter.GetValue(data, path); if (value != null && !ReferenceEquals(value, ValueGetter.NoValue)) { return(value); } var names = path.Split('.'); if (names.Length > 1) { foreach (var name in names) { data = ValueGetter.GetValue(data, name); if (data == null || ReferenceEquals(data, ValueGetter.NoValue)) { partialMatch = true; break; } } return(data); } return(value); }
private static object GetValueFromPath(object data, string path) { var names = path.Split('.'); foreach (var name in names) { data = ValueGetter.GetValue(data, name); if (data == null || ReferenceEquals(data, ValueGetter.NoValue)) { break; } } return(data); }
public object GetValue(string name) { if (name == ".") { return(_dataStack.Peek()); } foreach (var data in _dataStack) { if (data != null) { var value = ValueGetter.GetValue(data, name); if (value != null) { return(value); } } } return(null); }