/// <summary>public for implementors, do not use directly</summary> public static IEnumerator BackingFieldPath(object expression) { CheckForNull(expression); if (expression is IReflectField) { return(Iterators.Iterate(new[] { ((IReflectField)expression).GetName() })); } var path = _prototypes.BackingFieldPath(((IReflectClass)_context.Value), expression); if (path != null) { return(path); } return(Iterators.Iterate(new[] { FieldByFieldName(expression).GetName() })); }