/// <summary> /// Call OnField or OnProperty for the given member /// </summary> private static IInstanceListenerOnFieldOrPropResult CallListener(IInstanceListener listener, InstanceTraversalContext context, MemberInfo memberInfo, Func <object> valueGetter) { if (memberInfo.MemberType == MemberTypes.Field) { return(listener.OnField((FieldInfo)memberInfo, valueGetter, context)); } return(listener.OnProperty((PropertyInfo)memberInfo, valueGetter, context)); }
/// <summary> /// Call OnField or OnProperty for the given member /// </summary> private void CallListener(IInstanceListener listener, InstanceTraversalContext context, MemberInfo memberInfo, Func <object> valueGetter) { if (memberInfo.MemberType == MemberTypes.Field) { listener.OnField((FieldInfo)memberInfo, valueGetter, context); } else { listener.OnProperty((PropertyInfo)memberInfo, valueGetter, context); } }
protected InstanceTraverserTestBase() { listener = A.Fake <IInstanceListener>(); // traversal should continue through the objects by default A.CallTo(() => listener.OnField(A <FieldInfo> ._, A <Func <object> > ._, A <IReadOnlyInstanceTraversalContext> ._)) .Returns(new SimpleInstanceListenerOnFieldOrPropResult { DoContinueRecursion = true }); A.CallTo(() => listener.OnProperty(A <PropertyInfo> ._, A <Func <object> > ._, A <IReadOnlyInstanceTraversalContext> ._)) .Returns(new SimpleInstanceListenerOnFieldOrPropResult { DoContinueRecursion = true }); Traverser = new InstanceTraverser(); }