예제 #1
0
        private Binding method_0(string string_1, ServiceModelSectionGroup serviceModelSectionGroup_0)
        {
            BindingCollectionElement bindingCollectionElement = serviceModelSectionGroup_0.Bindings[string_1];
            Binding result;

            if (bindingCollectionElement.ConfiguredBindings.Count > 0)
            {
                IBindingConfigurationElement bindingConfigurationElement = bindingCollectionElement.ConfiguredBindings[0];
                Binding binding = this.method_1(bindingConfigurationElement);
                if (bindingConfigurationElement != null)
                {
                    bindingConfigurationElement.ApplyConfiguration(binding);
                }
                if (this.nullable_0.HasValue)
                {
                    binding.CloseTimeout   = this.nullable_0.Value;
                    binding.OpenTimeout    = this.nullable_0.Value;
                    binding.ReceiveTimeout = this.nullable_0.Value;
                    binding.SendTimeout    = this.nullable_0.Value;
                }
                result = binding;
            }
            else
            {
                result = null;
            }
            return(result);
        }
        private Binding GetBinding(IBindingConfigurationElement bindingElement)
        {
            Type    type    = bindingElement.GetType();
            Binding binding = null;

            if (type == typeof(BasicHttpBindingElement))
            {
                binding = new BasicHttpBinding();
            }
            if (type == typeof(WSHttpBindingElement))
            {
                binding = new WSHttpBinding();
            }

            if (type == typeof(NetTcpBindingElement))
            {
                binding = new NetTcpBinding();
            }

            if (type == typeof(NetNamedPipeBindingElement))
            {
                binding = new NetNamedPipeBinding();
            }

            //bug...
            bindingElement.ApplyConfiguration(binding);
            return(binding);
        }
예제 #3
0
        /// <summary>
        /// Get Binding
        /// </summary>
        /// <param name="bindingName"></param>
        /// <param name="configName"></param>
        /// <returns></returns>
        public static Binding GetBinding(this string bindingName, string configName)
        {
            Binding loBinding = null;
            IBindingConfigurationElement loBindingConfigElement = null;
            var loBindingsSection = moGetBindingsSection(configName);

            if (loBindingsSection == null)
            {
                return(loBinding);
            }

            foreach (var loElement in loBindingsSection.BindingCollections.Where(r => r.ConfiguredBindings.Count > 0))
            {
                loBindingConfigElement = loElement.ConfiguredBindings.FirstOrDefault(r => r.Name == bindingName);
                if (loBindingConfigElement != null)
                {
                    loBinding      = Activator.CreateInstance(loElement.BindingType) as Binding;
                    loBinding.Name = bindingName;
                    loBindingConfigElement.ApplyConfiguration(loBinding);
                    break;
                }
            }

            return(loBinding);
        }
예제 #4
0
        public static string GetBindingName(IBindingConfigurationElement bindingElement)
        {
            var bindingElementDecorator = bindingElement as IBindingElementDecorator;
            var bindingType             = bindingElementDecorator == null
                                ? bindingElement.GetType()
                                : bindingElementDecorator.DecoratedBindingElement.GetType();

            return(_instance[bindingType]);
        }
예제 #5
0
        public static string GetBindingName(IBindingConfigurationElement bindingElement)
        {
            if (bindingElement == null)
            {
                throw new ArgumentNullException(nameof(bindingElement));
            }
            var bindingType = bindingElement is IBindingElementDecorator bindingElementDecorator
                                ? bindingElementDecorator.DecoratedBindingElement.GetType()
                                : bindingElement.GetType();

            return(_instance[bindingType]);
        }
예제 #6
0
        /// <summary>
        /// Helper method to create the right binding depending on the configuration element
        /// </summary>
        /// <param name="configurationElement"></param>
        /// <returns></returns>
        protected virtual Binding GetBinding(IBindingConfigurationElement configurationElement)
        {
            IDictionary <Type, Binding> container = new Dictionary <Type, Binding>
            {
                { typeof(CustomBindingElement), new CustomBinding() }, { typeof(BasicHttpBindingElement), new BasicHttpBinding() },
                { typeof(NetMsmqBindingElement), new NetMsmqBinding() }, { typeof(NetNamedPipeBindingElement), new NetNamedPipeBinding() },
                { typeof(NetPeerTcpBindingElement), new NetPeerTcpBinding() }, { typeof(NetTcpBindingElement), new NetTcpBinding() },
                { typeof(WSDualHttpBindingElement), new WSDualHttpBinding() }, { typeof(WSHttpBindingElement), new WSHttpBinding() },
                { typeof(WSFederationHttpBindingElement), new WSFederationHttpBinding() }
            };

            return(container.ContainsKey(configurationElement.GetType()) ? container[configurationElement.GetType()] : null);
        }
예제 #7
0
        private Binding GetBinding(IBindingConfigurationElement configurationElement)
        {
            if (configurationElement is NetTcpBindingElement)
            {
                return(new NetTcpBinding());
            }

            if (configurationElement is NetMsmqBindingElement)
            {
                return(new NetMsmqBinding());
            }

            if (configurationElement is BasicHttpBindingElement)
            {
                return(new BasicHttpBinding());
            }

            if (configurationElement is NetNamedPipeBindingElement)
            {
                return(new NetNamedPipeBinding());
            }

            if (configurationElement is NetPeerTcpBindingElement)
            {
                return(new NetPeerTcpBinding());
            }

            if (configurationElement is WSDualHttpBindingElement)
            {
                return(new WSDualHttpBinding());
            }

            if (configurationElement is WSHttpBindingElement)
            {
                return(new WSHttpBinding());
            }

            if (configurationElement is WSFederationHttpBindingElement)
            {
                return(new WSFederationHttpBinding());
            }

            if (configurationElement is CustomBindingElement)
            {
                return(new CustomBinding());
            }

            return(null);
        }
예제 #8
0
        /// <summary>
        /// Configures the binding for the selected endpoint
        /// </summary>
        /// <param name="bindingName"></param>
        /// <param name="group"></param>
        /// <returns></returns>
        protected virtual Binding CreateBinding(string bindingName, ServiceModelSectionGroup group)
        {
            BindingCollectionElement bindingElementCollection = group.Bindings[bindingName];

            if (bindingElementCollection.ConfiguredBindings.Count > 0)
            {
                IBindingConfigurationElement be = bindingElementCollection.ConfiguredBindings[0];
                Binding binding = GetBinding(be);
                if (be != null)
                {
                    be.ApplyConfiguration(binding);
                }
                return(binding);
            }
            return(null);
        }
예제 #9
0
        private Binding CreateBinding(string bindingName, ServiceModelSectionGroup group)
        {
            BindingCollectionElement bindingCollectionElement = group.Bindings[bindingName];

            if (bindingCollectionElement.ConfiguredBindings.Count > 0)
            {
                IBindingConfigurationElement bindingConfigurationElement = bindingCollectionElement.ConfiguredBindings[0];
                Binding binding = this.GetBinding(bindingConfigurationElement);
                if (bindingConfigurationElement != null)
                {
                    bindingConfigurationElement.ApplyConfiguration(binding);
                }
                return(binding);
            }
            return(null);
        }
예제 #10
0
        private Binding method_1(IBindingConfigurationElement ibindingConfigurationElement_0)
        {
            Binding result;

            if (ibindingConfigurationElement_0 is CustomBindingElement)
            {
                result = new CustomBinding();
            }
            else if (ibindingConfigurationElement_0 is BasicHttpBindingElement)
            {
                result = new BasicHttpBinding();
            }
            else if (ibindingConfigurationElement_0 is NetMsmqBindingElement)
            {
                result = new NetMsmqBinding();
            }
            else if (ibindingConfigurationElement_0 is NetNamedPipeBindingElement)
            {
                result = new NetNamedPipeBinding();
            }
            else if (ibindingConfigurationElement_0 is NetPeerTcpBindingElement)
            {
                result = new NetPeerTcpBinding();
            }
            else if (ibindingConfigurationElement_0 is NetTcpBindingElement)
            {
                result = new NetTcpBinding();
            }
            else if (ibindingConfigurationElement_0 is WSDualHttpBindingElement)
            {
                result = new WSDualHttpBinding();
            }
            else if (ibindingConfigurationElement_0 is WSHttpBindingElement)
            {
                result = new WSHttpBinding();
            }
            else if (ibindingConfigurationElement_0 is WSFederationHttpBindingElement)
            {
                result = new WSFederationHttpBinding();
            }
            else
            {
                result = null;
            }
            return(result);
        }
예제 #11
0
        private Binding LookupBinding(ServiceModelSectionGroup group, string bindingName, string configurationName)
        {
            BindingCollectionElement bindingElementCollection = group.Bindings[bindingName];

            if (bindingElementCollection.ConfiguredBindings.Count == 0)
            {
                return(null);
            }

            IBindingConfigurationElement bindingConfigurationElement = bindingElementCollection.ConfiguredBindings.First(item => item.Name == configurationName);

            Binding binding = GetBinding(bindingConfigurationElement);

            if (bindingConfigurationElement != null)
            {
                bindingConfigurationElement.ApplyConfiguration(binding);
            }

            return(binding);
        }
예제 #12
0
        public static Binding CreateBinding(
            string bindingSectionName,
            string bindingName,
            ServiceModelSectionGroup serviceModelSection)
        {
            Binding binding = null;

            BindingCollectionElement bindingElementCollection = serviceModelSection.Bindings[bindingSectionName];

            IBindingConfigurationElement bindingElement =
                bindingElementCollection.ConfiguredBindings.First(be => StringUtil.CompareIgnoreCase(be.Name, bindingName));

            if (bindingElement != null)
            {
                binding = GetBinding(bindingElement);

                bindingElement.ApplyConfiguration(binding);
            }

            return(binding);
        }
예제 #13
0
        private Binding CreateBinding(
            string bindingName,
            ServiceModelSectionGroup group)
        {
            BindingCollectionElement bindingCollectionElem = group.Bindings[bindingName];

            if (bindingCollectionElem.ConfiguredBindings.Count == 0)
            {
                return(null);
            }

            IBindingConfigurationElement bindingElem = bindingCollectionElem.ConfiguredBindings[0];
            var binding = GetBinding(bindingElem);

            if (bindingElem != null && binding != null)
            {
                bindingElem.ApplyConfiguration(binding);
            }

            return(binding);
        }
예제 #14
0
        /// <summary>
        /// Configures the binding for the selected endpoint
        /// </summary>
        /// <param name="bindingName"></param>
        /// <param name="bindingSection"></param>
        /// <param name="group"></param>
        /// <returns></returns>
        private Binding CreateBinding(string bindingName, string bindingSection, ServiceModelSectionGroup group)
        {
            BindingCollectionElement bindingElementCollection = group.Bindings[bindingName];

            if (bindingElementCollection.ConfiguredBindings.Count > 0)
            {
                IBindingConfigurationElement be =
                    bindingElementCollection.ConfiguredBindings.Single(b => b.Name.Equals(bindingSection));



                Binding binding = GetBinding(be);
                if (be != null)
                {
                    be.ApplyConfiguration(binding);
                }

                return(binding);
            }

            return(null);
        }
예제 #15
0
        /// <summary>
        /// 为所选择的终结点配置绑定
        /// </summary>
        /// <param name="bindingName"></param>
        /// <param name="group"></param>
        /// <returns></returns>
        private Binding CreateBinding(string bindingName, ServiceModelSectionGroup group)
        {
            BindingCollectionElement bindingElementCollection = group.Bindings[bindingName];

            if (bindingElementCollection.ConfiguredBindings.Count > 0)
            {
                IBindingConfigurationElement be = bindingElementCollection.ConfiguredBindings[0];

                Binding binding = GetBinding(be);
                if (be != null)
                {
                    be.ApplyConfiguration(binding);
                }
                if (_timeout != null)
                {
                    binding.CloseTimeout   = (TimeSpan)_timeout;
                    binding.OpenTimeout    = (TimeSpan)_timeout;
                    binding.ReceiveTimeout = (TimeSpan)_timeout;
                    binding.SendTimeout    = (TimeSpan)_timeout;
                }
                return(binding);
            }
            return(null);
        }
예제 #16
0
        /// <summary>
        /// 获取绑定信息
        /// </summary>
        /// <param name="bindingName">绑定名</param>
        /// <param name="configName">配置名</param>
        /// <returns></returns>
        public static Binding GetBinding(string bindingName, string configName)
        {
            Binding binding = null;
            IBindingConfigurationElement bindingConfigurationElement = null;
            var bindingsSection = GetBindingsSection(configName);

            if (bindingsSection == null)
            {
                return(null);
            }

            foreach (BindingCollectionElement element in bindingsSection.BindingCollections.Where(x => x.ConfiguredBindings.Count > 0))
            {
                bindingConfigurationElement = element.ConfiguredBindings.FirstOrDefault(x => x.Name == bindingName);
                if (bindingConfigurationElement != null)
                {
                    binding      = Activator.CreateInstance(element.BindingType) as Binding;
                    binding.Name = bindingName;
                    bindingConfigurationElement.ApplyConfiguration(binding);
                    break;
                }
            }
            return(binding);
        }
예제 #17
0
        /// <summary>
        /// The get binding.
        /// </summary>
        /// <param name="configurationElement">
        /// The configuration element.
        /// </param>
        /// <returns>
        /// The <see cref="System.ServiceModel.Channels.Binding"/>.
        /// </returns>
        private Binding GetBinding(IBindingConfigurationElement configurationElement)
        {
            if (configurationElement is CustomBindingElement)
            {
                return(new CustomBinding(
                           (BindingElement) new BinaryMessageEncodingBindingElement(),
                           SecurityBindingElement.CreateUserNameOverTransportBindingElement(),
                           new NonSslAuthHttpTransportBindingElement()));
            }

            if (configurationElement is BasicHttpBindingElement)
            {
                return(new BasicHttpBinding());
            }

            if (configurationElement is NetMsmqBindingElement)
            {
                return(new NetMsmqBinding());
            }

            if (configurationElement is NetNamedPipeBindingElement)
            {
                return(new NetNamedPipeBinding());
            }

            if (configurationElement is NetPeerTcpBindingElement)
            {
                return(new NetPeerTcpBinding());
            }

            if (configurationElement is NetTcpBindingElement)
            {
                return(new NetTcpBinding());
            }

            if (configurationElement is WSDualHttpBindingElement)
            {
                return(new WSDualHttpBinding());
            }

            if (configurationElement is WSHttpBindingElement)
            {
                return(new WSHttpBinding());
            }

            if (configurationElement is WSFederationHttpBindingElement)
            {
                return(new WSFederationHttpBinding());
            }

            if (configurationElement is WS2007FederationHttpBinding)
            {
                return(new WS2007FederationHttpBinding());
            }

            if (configurationElement is WS2007HttpBinding)
            {
                return(new WS2007HttpBinding());
            }
            else
            {
                return(null);
            }
        }
예제 #18
0
파일: AppHost.cs 프로젝트: Allen-Zhou/AF
 private static Binding CreateBinding(IBindingConfigurationElement b, BindingCollectionElement be)
 {
     var binding = (Binding)Activator.CreateInstance(be.BindingType);
     b.ApplyConfiguration(binding);
     binding.Name = b.Name;
     return binding;
 }
예제 #19
0
        static BindingCollectionElement CreateCollectionElement(
			string bindingName, IBindingConfigurationElement element)
        {
            switch (bindingName) {
            case "basicHttpBinding": {
                var http = new BasicHttpBindingCollectionElement ();
                http.Bindings.Add ((BasicHttpBindingElement)element);
                return http;
            }
            #if NET_4_5
            case "basicHttpsBinding": {
                var https = new BasicHttpsBindingCollectionElement ();
                https.Bindings.Add ((BasicHttpsBindingElement)element);
                return https;
            }
            #endif
            case "netTcpBinding": {
                var netTcp = new NetTcpBindingCollectionElement ();
                netTcp.Bindings.Add ((NetTcpBindingElement)element);
                return netTcp;
            }
            case "customBinding": {
                var custom = new CustomBindingCollectionElement ();
                custom.Bindings.Add ((CustomBindingElement)element);
                return custom;
            }
            default:
                throw new InvalidOperationException ();
            }
        }