OPC Studio User's Guide and Reference
EffectiveNodeDescriptor Property
Example 



OpcLabs.ServerOpcUA Assembly > OpcLabs.EasyOpc.UA.NodeSpace Namespace > UAServerNode Class : EffectiveNodeDescriptor Property
The effective node descriptor by which this node is addressable in the OPC UA server.
Syntax
'Declaration
 
<NotNullAttribute()>
Public ReadOnly Property EffectiveNodeDescriptor As UANodeDescriptor
'Usage
 
Dim instance As UAServerNode
Dim value As UANodeDescriptor
 
value = instance.EffectiveNodeDescriptor
[NotNull()]
public UANodeDescriptor EffectiveNodeDescriptor {get;}
[NotNull()]
public:
property UANodeDescriptor^ EffectiveNodeDescriptor {
   UANodeDescriptor^ get();
}

Property Value

The value of this property cannot be null (Nothing in Visual Basic).

Because there are implicit conversions to OpcLabs.EasyOpc.UA.Navigation.UANamedNodeDescriptor and OpcLabs.EasyOpc.UA.Navigation.UANamedNodePath from OpcLabs.EasyOpc.UA.UANodeDescriptor, in languages that support implicit conversion operators (such as C# or VB.NET), you can simply use the returned OpcLabs.EasyOpc.UA.UANodeDescriptor in any place where OpcLabs.EasyOpc.UA.Navigation.UANamedNodeDescriptor is expected (in this case the OpcLabs.EasyOpc.UA.UANodeDescriptor contains the final node descriptor) or where OpcLabs.EasyOpc.UA.Navigation.UANamedNodePath is expected (in this case the OpcLabs.EasyOpc.UA.UANodeDescriptor contains the base and only node in the named node path), and the corresponding OPC UA named node descriptor or named node path will be constructed automatically. When the implicit conversion operators are not supported (such as with Python.NET), you can use the OpcLabs.EasyOpc.UA.Navigation.UANamedNodeDescriptor.FromUANodeDescriptor or OpcLabs.EasyOpc.UA.Navigation.UANamedNodePath.FromUANodeDescriptor static method instead.

Remarks

The effective node descriptor is available when the node is rooted in the server. Otherwise, the effective node descriptor is OpcLabs.EasyOpc.UA.UANodeDescriptor.Null.

This method or property does not throw any exceptions, aside from execution exceptions such as System.Threading.ThreadAbortException or System.OutOfMemoryException.

Example
// This example shows how to obtain the effective node descriptors of server nodes (i.e. their node IDs and browse paths).
// You can use any OPC UA client, including our Connectivity Explorer and OpcCmd utility, to connect to the server. 
//
// Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
// OPC client, server and subscriber examples in C# on GitHub: https://github.com/OPCLabs/Examples-OPCStudio-CSharp .
// Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
// a commercial license in order to use Online Forums, and we reply to every post.

using System;
using OpcLabs.EasyOpc.UA;
using OpcLabs.EasyOpc.UA.NodeSpace;

namespace UAServerDocExamples._UAServerNode
{
    class EffectiveNodeDescriptor
    {
        public static void Main1()
        {
            // Instantiate the server object.
            // By default, the server will run on endpoint URL "opc.tcp://localhost:48040/".
            var server = new EasyUAServer();

            // Define some nodes in the server.
            var dataVariable1 = UADataVariable.CreateIn(server.Objects, "DataVariable1");
            var folder1 = UAFolder.CreateIn(server.Objects, "Folder1");
            var dataVariable2 = UADataVariable.CreateIn(folder1, "DataVariable2");

            // Display the node Ids (including the namespace URI).
            Console.WriteLine();
            Console.WriteLine(server.Objects.EffectiveNodeDescriptor.NodeId);
            Console.WriteLine(dataVariable1.EffectiveNodeDescriptor.NodeId);
            Console.WriteLine(folder1.EffectiveNodeDescriptor.NodeId);
            Console.WriteLine(dataVariable2.EffectiveNodeDescriptor.NodeId);

            // Display the browse paths.
            Console.WriteLine();
            Console.WriteLine(server.Objects.EffectiveNodeDescriptor.BrowsePath);
            Console.WriteLine(dataVariable1.EffectiveNodeDescriptor.BrowsePath);
            Console.WriteLine(folder1.EffectiveNodeDescriptor.BrowsePath);
            Console.WriteLine(dataVariable2.EffectiveNodeDescriptor.BrowsePath);
        }
    }
}
' This example shows how to obtain the effective node descriptors of server nodes (i.e. their node IDs and browse paths).
' You can use any OPC UA client, including our Connectivity Explorer and OpcCmd utility, to connect to the server. 
'
' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
' OPC client and subscriber examples in VB.NET on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VBNET .
' Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
' a commercial license in order to use Online Forums, and we reply to every post.

Imports System
Imports OpcLabs.EasyOpc.UA
Imports OpcLabs.EasyOpc.UA.NodeSpace

Namespace _UAServerNode
    Partial Friend Class EffectiveNodeDescriptor
        Shared Sub Main1()
            ' Instantiate the server object.
            ' By default, the server will run on endpoint URL "opc.tcp://localhost:48040/".
            Dim server = New EasyUAServer()

            ' Define some nodes in the server.
            Dim dataVariable1 = UADataVariable.CreateIn(server.Objects, "DataVariable1")
            Dim folder1 = UAFolder.CreateIn(server.Objects, "Folder1")
            Dim dataVariable2 = UADataVariable.CreateIn(folder1, "DataVariable2")

            ' Display the node Ids (including the namespace URI).
            Console.WriteLine()
            Console.WriteLine(server.Objects.EffectiveNodeDescriptor.NodeId)
            Console.WriteLine(dataVariable1.EffectiveNodeDescriptor.NodeId)
            Console.WriteLine(folder1.EffectiveNodeDescriptor.NodeId)
            Console.WriteLine(dataVariable2.EffectiveNodeDescriptor.NodeId)

            ' Display the browse paths.
            Console.WriteLine()
            Console.WriteLine(server.Objects.EffectiveNodeDescriptor.BrowsePath)
            Console.WriteLine(dataVariable1.EffectiveNodeDescriptor.BrowsePath)
            Console.WriteLine(folder1.EffectiveNodeDescriptor.BrowsePath)
            Console.WriteLine(dataVariable2.EffectiveNodeDescriptor.BrowsePath)
        End Sub
    End Class
End Namespace
Requirements

Target Platforms: .NET Framework: Windows 10 (selected versions), Windows 11 (selected versions), Windows Server 2016, Windows Server 2022; .NET: Linux, macOS, Microsoft Windows

See Also