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

Create() public static method

Creates a binding table from the bindings specified in the application configuration.
public static Create ( ApplicationConfiguration configuration, ServiceMessageContext context ) : BindingFactory
configuration ApplicationConfiguration
context ServiceMessageContext
return BindingFactory
        public static BindingFactory Create(ApplicationConfiguration configuration, ServiceMessageContext context)
        {
            if (configuration == null || configuration.TransportConfigurations == null || configuration.TransportConfigurations.Count == 0)
            {
                return new BindingFactory(context.NamespaceUris, context.Factory);
            }

            BindingFactory table = new BindingFactory(context.NamespaceUris, context.Factory);

            foreach (TransportConfiguration entry in configuration.TransportConfigurations)
            {
                if (entry.TypeName == Utils.UaTcpBindingDefault)
                {
                    continue;
                }

                Type type = Type.GetType(entry.TypeName);

                if (type == null)
                {                
                    throw ServiceResultException.Create(StatusCodes.BadConfigurationError, "Could not find binding type '{0}'.", entry.TypeName);
                }

                table.Add(entry.UriScheme, type);
            }

            return table;
        }
        #endregion

Same methods

BindingFactory::Create ( string uriScheme, EndpointConfiguration configuration ) : System.ServiceModel.Channels.Binding
BindingFactory::Create ( string uriScheme, EndpointDescription description, EndpointConfiguration configuration ) : System.ServiceModel.Channels.Binding
BindingFactory::Create ( string uriScheme, List descriptions, EndpointConfiguration configuration ) : System.ServiceModel.Channels.Binding
BindingFactory::Create ( ApplicationConfiguration configuration ) : BindingFactory

Usage Example

コード例 #1
0
ファイル: ServiceHost.cs プロジェクト: martycav/UANodeSet
        /// <summary>
        /// Adds the discovery url to the hosts.
        /// </summary>
        /// <param name="configuration">The configuration.</param>
        /// <param name="discoveryUrls">The discovery urls.</param>
        public virtual void InitializeDiscovery(
            ApplicationConfiguration configuration,
            StringCollection discoveryUrls)
        {
            // create the binding factory.
            BindingFactory        bindingFactory        = BindingFactory.Create(configuration, configuration.CreateMessageContext());
            EndpointConfiguration endpointConfiguration = EndpointConfiguration.Create(configuration);

            foreach (string discoveryUrl in discoveryUrls)
            {
                // parse discovery url.
                Uri url = Utils.ParseUri(discoveryUrl);

                if (url == null)
                {
                    continue;
                }

                // create endpoint.
                if (url.PathAndQuery.EndsWith("/discovery"))
                {
                    Binding binding = bindingFactory.Create(url.Scheme, endpointConfiguration);
                    this.AddServiceEndpoint(typeof(IDiscoveryEndpoint), binding, url, url);
                }
            }
        }
All Usage Examples Of Opc.Ua.BindingFactory::Create