/// <summary> /// Enumerates visible instance fields of given object. /// </summary> /// <param name="instance">Object which fields will be enumerated.</param> /// <param name="caller">Current class context for field visibility check.</param> /// <returns>Enumeration of fields and their values, including runtime fields.</returns> public static IEnumerable <KeyValuePair <IntStringKey, PhpValue> > EnumerateVisibleInstanceFields(object instance, RuntimeTypeHandle caller = default) { return(EnumerateInstanceFields(instance, (p) => new IntStringKey(p.PropertyName), FuncExtensions.Identity <IntStringKey>(), (m) => m.IsVisible(caller))); }
/// <summary> /// Enumerates visible instance fields of given object. /// </summary> /// <param name="instance">Object which fields will be enumerated.</param> /// <param name="caller">Current class context for field visibility check.</param> /// <returns>Enumeration of fields and their values, including runtime fields.</returns> public static IEnumerable <KeyValuePair <IntStringKey, PhpValue> > EnumerateVisibleInstanceFields(object instance, RuntimeTypeHandle caller = default) { return(EnumerateInstanceFields(instance, (f, d) => new IntStringKey(f.Name), FuncExtensions.Identity <IntStringKey>(), (m) => s_notInternalFieldsPredicate(m) && IsVisible(m, caller))); }