OPC Studio User's Guide and Reference
IEasyUAServerExtension Class
Members  Example 



OpcLabs.ServerOpcUA Assembly > OpcLabs.EasyOpc.UA Namespace : IEasyUAServerExtension Class
Contains extension methods to the IEasyUAServer interface.
Syntax
'Declaration
 
<ExtensionAttribute()>
<ExceptionContractAnnotationAttribute(True)>
Public MustInherit NotInheritable Class IEasyUAServerExtension 
'Usage
 
Dim instance As IEasyUAServerExtension
[Extension()]
[ExceptionContractAnnotation(true)]
public static class IEasyUAServerExtension 
[Extension()]
[ExceptionContractAnnotation(true)]
public ref class IEasyUAServerExtension abstract sealed 
Remarks

Methods are provided that offer convenient ways to start and stop the OPC UA server, allowing for fluent interaction patterns.

NOTE: This class is intentionally *not* placed in the Extensions namespace, but rather alongside the extendee. The extension methods in this class are commonly used, and from the point of view of the developer, can be considered as part of the interface. In addition, this placement allows fewer namespaces references in typical projects, and better consistency with the COM interfaces (as only methods from this extension class may appear in the COM interfaces).

Other extension classes may exist as well.

This class contains extension methods (info: C#, VB.NET). In languages that have support for extensions methods (such as C# and VB.NET), you can use the extension method as if it were a regular method on the object that is its first parameter. In other languages (such as with Python.NET), you will call the extension as a static method, and pass it the object on which it acts as its first parameter.

Example
// This example shows how to search for nodes in the server by their node Id.
// 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._EasyUAServer
{
    class FindServerNode
    {
        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.
            UADataVariable constantDataVariable = UADataVariable.CreateIn(server.Objects, "Constant").ConstantValue("abc");
            UADataVariable nestedConstantDataVariable = UADataVariable.CreateIn(constantDataVariable, "NestedConstant").ConstantValue(42);
            
            // Try to find the nested constant data variable. It will be found.
            UAServerNode serverNode1 = server.FindServerNode("nsu=http://opclabs.com/OpcUA/Custom/Objects ;s=Constant.NestedConstant");
            Console.WriteLine(serverNode1);

            // Try to find an unknown server node. A null reference will be returned.
            UAServerNode serverNode2 = server.FindServerNode("nsu=http://opclabs.com/OpcUA/Custom/Objects ;s=Unknown");
            Console.WriteLine(serverNode2);
        }
    }
}
' This example shows how to search for nodes in the server by their node Id.
' 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 _EasyUAServer
    Partial Friend Class FindServerNode
        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 constantDataVariable As UADataVariable = UADataVariable.CreateIn(server.Objects, "Constant").ConstantValue("abc")
            Dim nestedConstantDataVariable As UADataVariable = UADataVariable.CreateIn(constantDataVariable, "NestedConstant").ConstantValue(42)

            ' Try to find the nested constant data variable. It will be found.
            Dim serverNode1 As UAServerNode = server.FindServerNode("nsu=http://opclabs.com/OpcUA/Custom/Objects ;s=Constant.NestedConstant")
            Console.WriteLine(serverNode1)

            ' Try to find an unknown server node. A null reference will be returned.
            Dim serverNode2 As UAServerNode = server.FindServerNode("nsu=http://opclabs.com/OpcUA/Custom/Objects ;s=Unknown")
            Console.WriteLine(serverNode2)
        End Sub
    End Class
End Namespace
Inheritance Hierarchy

System.Object
   OpcLabs.EasyOpc.UA.IEasyUAServerExtension

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