QuickOPC User's Guide and Reference
UAEndpointDescriptor Class
Members 



OpcLabs.EasyOpcUA Assembly > OpcLabs.EasyOpc.UA Namespace : UAEndpointDescriptor Class
Contains data defining a connection to the OPC-UA Server (mainly, its URL string).
Object Model
UAEndpointDescriptor ClassUAEndpointSelectionPolicy ClassUAEndpointDescriptor ClassIPkiCertificate InterfaceUserIdentity Class
Syntax
'Declaration
 
<CLSCompliantAttribute(True)>
<ComDefaultInterfaceAttribute(OpcLabs.EasyOpc.UA.ComTypes._UAEndpointDescriptor)>
<ComVisibleAttribute(True)>
<GuidAttribute("F4773A26-7A58-4349-8326-873629FC483F")>
<TypeConverterAttribute(OpcLabs.EasyOpc.UA.Implementation.UAEndpointDescriptorConverter)>
<ValueControlAttribute("OpcLabs.BaseLib.Forms.Common.ObjectSerializationControl, OpcLabs.BaseLibForms, Version=5.72.465.1, Culture=neutral, PublicKeyToken=6faddca41dacb409", 
   DefaultReadWrite=False, 
   Export=True, 
   PageId=10001)>
<SerializableAttribute()>
Public NotInheritable Class UAEndpointDescriptor 
   Inherits OpcLabs.BaseLib.EndpointDescriptor
   Implements LINQPad.ICustomMemberProvider, OpcLabs.BaseLib.Aliasing.ComTypes._Aliasable, OpcLabs.BaseLib.Aliasing.IAliasable, OpcLabs.BaseLib.ComTypes._EndpointDescriptor, OpcLabs.BaseLib.ComTypes._Info, OpcLabs.BaseLib.ComTypes._Object2, OpcLabs.BaseLib.ComTypes._ResourceDescriptor, OpcLabs.BaseLib.Text.IStringListSerializable, OpcLabs.EasyOpc.UA.ComTypes._UAEndpointDescriptor, System.ComponentModel.INotifyPropertyChanged, System.ICloneable, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable 
'Usage
 
Dim instance As UAEndpointDescriptor
[CLSCompliant(true)]
[ComDefaultInterface(OpcLabs.EasyOpc.UA.ComTypes._UAEndpointDescriptor)]
[ComVisible(true)]
[Guid("F4773A26-7A58-4349-8326-873629FC483F")]
[TypeConverter(OpcLabs.EasyOpc.UA.Implementation.UAEndpointDescriptorConverter)]
[ValueControl("OpcLabs.BaseLib.Forms.Common.ObjectSerializationControl, OpcLabs.BaseLibForms, Version=5.72.465.1, Culture=neutral, PublicKeyToken=6faddca41dacb409", 
   DefaultReadWrite=false, 
   Export=true, 
   PageId=10001)]
[Serializable()]
public sealed class UAEndpointDescriptor : OpcLabs.BaseLib.EndpointDescriptor, LINQPad.ICustomMemberProvider, OpcLabs.BaseLib.Aliasing.ComTypes._Aliasable, OpcLabs.BaseLib.Aliasing.IAliasable, OpcLabs.BaseLib.ComTypes._EndpointDescriptor, OpcLabs.BaseLib.ComTypes._Info, OpcLabs.BaseLib.ComTypes._Object2, OpcLabs.BaseLib.ComTypes._ResourceDescriptor, OpcLabs.BaseLib.Text.IStringListSerializable, OpcLabs.EasyOpc.UA.ComTypes._UAEndpointDescriptor, System.ComponentModel.INotifyPropertyChanged, System.ICloneable, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable  
[CLSCompliant(true)]
[ComDefaultInterface(OpcLabs.EasyOpc.UA.ComTypes._UAEndpointDescriptor)]
[ComVisible(true)]
[Guid("F4773A26-7A58-4349-8326-873629FC483F")]
[TypeConverter(OpcLabs.EasyOpc.UA.Implementation.UAEndpointDescriptorConverter)]
[ValueControl("OpcLabs.BaseLib.Forms.Common.ObjectSerializationControl, OpcLabs.BaseLibForms, Version=5.72.465.1, Culture=neutral, PublicKeyToken=6faddca41dacb409", 
   DefaultReadWrite=false, 
   Export=true, 
   PageId=10001)]
[Serializable()]
public ref class UAEndpointDescriptor sealed : public OpcLabs.BaseLib.EndpointDescriptor, LINQPad.ICustomMemberProvider, OpcLabs.BaseLib.Aliasing.ComTypes._Aliasable, OpcLabs.BaseLib.Aliasing.IAliasable, OpcLabs.BaseLib.ComTypes._EndpointDescriptor, OpcLabs.BaseLib.ComTypes._Info, OpcLabs.BaseLib.ComTypes._Object2, OpcLabs.BaseLib.ComTypes._ResourceDescriptor, OpcLabs.BaseLib.Text.IStringListSerializable, OpcLabs.EasyOpc.UA.ComTypes._UAEndpointDescriptor, System.ComponentModel.INotifyPropertyChanged, System.ICloneable, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable  
Remarks

An implicit conversion from a System.String containing the URL of the endpoint exists. It is therefore common to specify UAEndpointDescriptor-s as strings, relying on the implicit conversion.

EndPoint:
"a physical address available on a network that allows Clients to access one or more Services provided by a Server."
REMARK: "Each Server may have multiple Endpoints. The address of an Endpoint shall include a HostName."

 

A Server Endpoint is a physical address available on a network that allows clients to access one or more services provided by a server. Server endpoint is specified by its URL string.

Besides standard URLs e.g. with HTTP or HTTPS schemes, OPC Unified Architecture uses its own schemes, such as “opc.tcp”. Examples of server endpoint URL strings are:

Note: For backward compatibility, it is also possible to use “opc.http:” in place of “http:” scheme in OPC UA endpoint descriptors (for OPC Unified Architecture over SOAP/HTTP). You should not, however, use “opc.http:” in new projects.

In QuickOPC-UA, server endpoint corresponds to a UAEndpointDescriptor object that you create and pass to various methods. An implicit conversion from a string containing the URL of the endpoint exists. It is therefore common to specify UAEndpointDescriptor-s simply as strings, relying on the implicit conversion.

Endpoint Selection Policy

A single OPC-UA server may have multiple endpoints with the same functionality, but using different protocols, or different security settings, and expose the list of its own endpoint using discovery services. By default, the component will attempt to interpret the server endpoint you have specified as server’s discovery endpoint, and automatically select the best endpoint.

How precisely the endpoint is selected is determined by Endpoint Selection Policy (UAEndpointSelectionPolicy object) that you can parameterize in the SessionParameters property on the EasyUAClient object. Such parameterization has a global effect. You can also specify the endpoint selection policy individually for just a specific endpoint descriptor. To do so, set the EndpointSelectionPolicy Property of the UAEndpointDescriptor to a non-null instance of UAEndpointSelectionPolicy. For details, see OPC UA Endpoint Selection Policy.

User Identity

If a user authentication is required by the OPC UA server, you can specify user identity on the endpoint, in the UAEndpointDescriptor object (alternatively, it can be specified in session parameters - the token infos from these two places are effectively merged together). See OPC UA User Authentication and User Identity in QuickOPC-UA for more detailed discussions of this topic.

In order to make specifying the user identity with an endpoint descriptor easy QuickOPC has extension methods on the UAEndpointDescriptor class. They are:

These methods return a copy of the endpoint descriptor with the specified token info in its user identity.

Application Instance Certificate Selection

In advanced scenarios, your OPC UA application may have multiple application instance certificates, and use a different certificate with different server connections (see OPC UA Client-Server Application Service for more information). In such case, you can specify the application instance certificate to be used with the server connection by setting the CertificateSubId Property in the UAEndpointDescriptor to the (string) sub-Id of the certificate.

 

 

Inheritance Hierarchy

System.Object
   OpcLabs.BaseLib.Object2
      OpcLabs.BaseLib.Info
         OpcLabs.BaseLib.ResourceDescriptor
            OpcLabs.BaseLib.EndpointDescriptor
               OpcLabs.EasyOpc.UA.UAEndpointDescriptor

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