private static List <Node> NamespaceWalk(Session session, ReferenceDescription node, List <Node> nodes) { ReferenceDescriptionCollection nextRefs; Byte[] nextCp; session.Browse( null, null, ExpandedNodeId.ToNodeId(node.NodeId, session.NamespaceUris), 0u, BrowseDirection.Forward, ReferenceTypeIds.HierarchicalReferences, true, (uint)NodeClass.Variable | (uint)NodeClass.Object | (uint)NodeClass.Method, out nextCp, out nextRefs); foreach (ReferenceDescription reference in nextRefs) { nodes.Add(new Node(reference, node.NodeId)); } foreach (ReferenceDescription reference in nextRefs) { NamespaceWalk(session, reference, nodes); } return(nodes); }
private static ReferenceDescriptionCollection BrowseRoot(Session session) { ReferenceDescriptionCollection references; Byte[] continuationPoint; references = session.FetchReferences(ObjectIds.ObjectsFolder); session.Browse( null, null, ObjectIds.ObjectsFolder, 0u, BrowseDirection.Forward, ReferenceTypeIds.HierarchicalReferences, true, (uint)NodeClass.Variable | (uint)NodeClass.Object | (uint)NodeClass.Method, out continuationPoint, out references); return(references); }