public void Visit(object graph, IReadVisitor visitor) { var state = visitor.TryVisit(_args); if (state == ValueState.NotFound) { return; } if (state == ValueState.Null) { _property.Ref.SetValue(graph, null); visitor.Leave(_args); return; } var childGraph = Activator.CreateInstance(_property.Ref.PropertyType); _propertyType.Visit(childGraph, visitor); _property.Ref.SetValue(graph, childGraph); visitor.Leave(_args); }
public void Travel(IWriteVisitor visitor, object graph) { _type.Visit(graph, visitor); }