public static XObject Accept(this XObject node, XObjectVisitor visitor)
    {
        CheckNullReference(node);
        CheckArgumentNull(visitor, "visitor");

        // yay, easy dynamic dispatch
        Acceptor acceptor = new Acceptor(node as dynamic);

        return(acceptor.Accept(visitor));
    }
예제 #2
0
 public static void Visit(XElement source, XObjectVisitor func, int depth)
 {
     func(source, depth);
     foreach (XAttribute att in source.Attributes())
     {
         func(att, depth + 1);
     }
     foreach (XElement child in source.Elements())
     {
         Visit(child, func, depth + 1);
     }
 }
 public XObject Accept(XObjectVisitor visitor)
 {
     return(accept(visitor));
 }
 internal InternalAccessor(XObjectVisitor visitor)
 {
     this.visitor = visitor;
 }
 public static XObject Accept(this XCData node, XObjectVisitor visitor)
 {
     node.Reference();
     return visitor.VisitCData(node);
 }
예제 #6
0
 public static void Visit(this XElement source, XObjectVisitor func)
 {
     Visit(source, func, 0);
 }
 public static XObject Accept(this XText node, XObjectVisitor visitor)
 {
     node.Reference();
     return visitor.VisitText(node);
 }
 public static XObject Accept(this XProcessingInstruction node, XObjectVisitor visitor)
 {
     node.Reference();
     return visitor.VisitProcessingInstruction(node);
 }
 public static XObject Accept(this XDocumentType node, XObjectVisitor visitor)
 {
     node.Reference();
     return visitor.VisitDocumentType(node);
 }
 public static XObject Accept(this XAttribute node, XObjectVisitor visitor)
 {
     node.Reference();
     return visitor.VisitAttribute(node);
 }
 public static XObject Accept(this XObject node, XObjectVisitor visitor)
 {
     node.Reference();
     return Accept(node as dynamic, visitor);
 }