Opc.Ua.DiscoveryChannel.Create C# (CSharp) Method

Create() public static method

Creates a new transport channel that supports the IDiscoveryChannel service contract.
public static Create ( Uri discoveryUrl, BindingFactory bindingFactory, EndpointConfiguration endpointConfiguration, ServiceMessageContext messageContext ) : ITransportChannel
discoveryUrl System.Uri The discovery URL.
bindingFactory BindingFactory The binding factory.
endpointConfiguration EndpointConfiguration The endpoint configuration.
messageContext ServiceMessageContext The message context.
return ITransportChannel
        public static ITransportChannel Create(
            Uri discoveryUrl,
            BindingFactory bindingFactory,
            EndpointConfiguration endpointConfiguration,
            ServiceMessageContext messageContext)
        {
            // create a dummy description.
            EndpointDescription endpoint = new EndpointDescription();

            endpoint.EndpointUrl = discoveryUrl.ToString();
            endpoint.SecurityMode = MessageSecurityMode.None;
            endpoint.SecurityPolicyUri = SecurityPolicies.None;
            endpoint.Server.ApplicationUri = endpoint.EndpointUrl;
            endpoint.Server.ApplicationType = ApplicationType.DiscoveryServer;

            ITransportChannel channel = CreateUaBinaryChannel(
                null,
                endpoint,
                endpointConfiguration,
                (System.Security.Cryptography.X509Certificates.X509Certificate2)null,
                messageContext);

            // create a WCF XML channel.
            if (channel == null)
            {
                Binding binding = bindingFactory.Create(discoveryUrl.Scheme, endpointConfiguration);

                DiscoveryChannel wcfXmlChannel = new DiscoveryChannel();

                wcfXmlChannel.Initialize(
                    endpoint,
                    endpointConfiguration,
                    binding,
                    null);

                channel = wcfXmlChannel;
            }

            return channel;
        }

Same methods

DiscoveryChannel::Create ( Uri discoveryUrl, EndpointConfiguration configuration ) : DiscoveryChannel
DiscoveryChannel::Create ( Uri discoveryUrl, EndpointConfiguration configuration, System.ServiceModel.Channels.Binding binding, string configurationName ) : DiscoveryChannel
DiscoveryChannel::Create ( Uri discoveryUrl, EndpointConfiguration configuration, BindingFactory bindingFactory, string configurationName ) : DiscoveryChannel
DiscoveryChannel::Create ( Uri discoveryUrl, string configurationName ) : DiscoveryChannel
DiscoveryChannel::Create ( Uri discoveryUrl, EndpointConfiguration endpointConfiguration, ServiceMessageContext messageContext ) : ITransportChannel

Usage Example

コード例 #1
0
        /// <summary>
        /// Creates a binding for to use for discovering servers.
        /// </summary>
        /// <param name="discoveryUrl">The discovery URL.</param>
        /// <param name="endpointConfiguration">The endpoint configuration.</param>
        /// /// <param name="applicationConfiguration">The application configuration.</param>
        /// <returns></returns>
        public static DiscoveryClient Create(
            Uri discoveryUrl,
            EndpointConfiguration endpointConfiguration,
            ApplicationConfiguration applicationConfiguration)
        {
            if (endpointConfiguration == null)
            {
                endpointConfiguration = EndpointConfiguration.Create();
            }

            // check if application configuration contains instance certificate.
            X509Certificate2 clientCertificate = null;

            try
            {
                if (applicationConfiguration != null &&
                    applicationConfiguration.SecurityConfiguration != null &&
                    applicationConfiguration.SecurityConfiguration.ApplicationCertificate != null)
                {
                    clientCertificate = applicationConfiguration.SecurityConfiguration.ApplicationCertificate.Find(true).Result;
                }
            }
            catch
            {
                //ignore errors
            }

            ITransportChannel channel = DiscoveryChannel.Create(discoveryUrl, endpointConfiguration, new ServiceMessageContext(), clientCertificate);

            return(new DiscoveryClient(channel));
        }
All Usage Examples Of Opc.Ua.DiscoveryChannel::Create
DiscoveryChannel