static void Browse(Session session)
{
DiagnosticInfoCollection diagnosticInfos;
BrowseDescriptionCollection bc = new BrowseDescriptionCollection();
BrowseDescription bd = new BrowseDescription();
bd.BrowseDirection = BrowseDirection.Forward;
NodeId nodeId = Opc.Ua.Objects.ObjectsFolder;
do
{
Console.WriteLine("\n Enter nodeId to Browse (or q to exit)");
string s = Console.ReadLine();
if (s == "q")
break;
if (s.Length == 0)
{
nodeId = Opc.Ua.Objects.ObjectsFolder;
}
else
nodeId = new NodeId(s);
bc.Clear();
bd.NodeId = nodeId;
bc.Add(bd);
BrowseResultCollection results;
ResponseHeader rh =
session.Browse(null, null, 100, bc, out results, out diagnosticInfos);
foreach ( BrowseResult res in results)
{
foreach (ReferenceDescription rdc in res.References)
{
Console.WriteLine(String.Format(" Node = {0} (namespace {1}) {2}", rdc.NodeId.ToString(),rdc.NodeId.NamespaceIndex, Environment.NewLine));
}
}
} while (true);
}