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

Create() public method

Creates a discovery binding for the specified URI scheme.
public Create ( string uriScheme, EndpointConfiguration configuration ) : System.ServiceModel.Channels.Binding
uriScheme string The URI scheme.
configuration EndpointConfiguration The configuration.
return System.ServiceModel.Channels.Binding
        public virtual Binding Create(
            string                uriScheme, 
            EndpointConfiguration configuration)
        {        
            if (uriScheme == null) throw new ArgumentNullException("uriScheme");

            Type bindingType = null;

            if (!m_bindings.TryGetValue(uriScheme, out bindingType))
            {
                throw ServiceResultException.Create(StatusCodes.BadInvalidArgument, "Could not find binding type for scheme: '{0}'.", uriScheme);
            }

            try
            {
                return (Binding)Activator.CreateInstance(bindingType, m_namespaceUris, m_factory, configuration, (EndpointDescription)null);
            }
            catch (Exception e)
            {
                throw ServiceResultException.Create(StatusCodes.BadInvalidArgument, e, "A dicovery binding for type '{0}' could not be created from the EndpointConfiguration.", bindingType.FullName);
            }
        }

Same methods

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
BindingFactory::Create ( ApplicationConfiguration configuration, ServiceMessageContext context ) : 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