public BrowsePathCollection GetRemoteBrowsePaths(NodeId localNodeId, params string[] relativePaths)
{
BrowsePathCollection browsePaths = new BrowsePathCollection();
if (relativePaths != null)
{
for (int ii = 0; ii < relativePaths.Length; ii++)
{
BrowsePath browsePath = new BrowsePath();
browsePath.RelativePath = RelativePath.Parse(relativePaths[ii], this.m_typeTable);
browsePath.StartingNode = GetRemoteNodeId(localNodeId);
for (int jj = 0; jj < browsePath.RelativePath.Elements.Count; jj++)
{
QualifiedName targetName = browsePath.RelativePath.Elements[jj].TargetName;
targetName = GetRemoteQualifiedName(targetName);
browsePath.RelativePath.Elements[jj].TargetName = targetName;
NodeId referenceTypeId = browsePath.RelativePath.Elements[jj].ReferenceTypeId;
referenceTypeId = GetRemoteNodeId(referenceTypeId);
browsePath.RelativePath.Elements[jj].ReferenceTypeId = referenceTypeId;
}
browsePaths.Add(browsePath);
}
}
return browsePaths;
}
#endregion