public virtual void VisitSequenceStart(IObjectDescriptor sequence, Type elementType) { nextVisitor.VisitSequenceStart(sequence, elementType); }
public virtual void VisitSequenceStart(IObjectDescriptor sequence, Type elementType, IEmitter context) { nextVisitor.VisitSequenceStart(sequence, elementType, context); }
public virtual void VisitSequenceStart(object sequence, Type sequenceType, Type elementType) { nextVisitor.VisitSequenceStart(sequence, sequenceType, elementType); }
private void TraverseList(IObjectDescriptor value, IObjectGraphVisitor visitor, int currentDepth) { var enumerableType = ReflectionUtility.GetImplementedGenericInterface(value.Type, typeof(IEnumerable<>)); var itemType = enumerableType != null ? enumerableType.GetGenericArguments()[0] : typeof(object); visitor.VisitSequenceStart(value, itemType); foreach (var item in (IEnumerable)value.Value) { Traverse(GetObjectDescriptor(item, itemType), visitor, currentDepth); } visitor.VisitSequenceEnd(value); }