public static bool GetField(IBindingContext bindingContext, object targetObject, string name, bool caseSensitive, out object value) { // Try to load nameToken from cache if (bindingContext == null || !bindingContext.GetNameToken(expression: name, nameToken: out NameToken nameToken)) { nameToken = GetNameToken(expression: name); if (bindingContext != null) { bindingContext.CacheNameToken(expression: name, nameToken: nameToken); } } return(GetField(targetObject: targetObject, token: nameToken, caseSensitive: caseSensitive, value: out value)); }