示例#1
0
        private static StandardBindingElement GetBindingElement(string bindingName, string sBindingType, out Type oBindingType)
        {
            oBindingType = null;
            StandardBindingElement bindingElement = null;

            var serviceModel = ServiceModelSectionGroup.GetSectionGroup(_config);

            foreach (var bindingCollection in serviceModel.Bindings.BindingCollections)
            {
                if (bindingCollection.BindingName == sBindingType)
                {
                    foreach (var bindingElem in bindingCollection.ConfiguredBindings)
                    {
                        if (bindingElem.Name == bindingName)
                        {
                            bindingElement = (StandardBindingElement)bindingElem;
                            oBindingType   = bindingCollection.BindingType;
                            break;
                        }
                    }
                }
                if (bindingElement != null)
                {
                    break;
                }
            }
            return(bindingElement);
        }
示例#2
0
        private Type GetBindingType(StandardBindingElement binding)
        {
            var type     = typeof(StandardBindingElement);
            var property = type.GetProperty("BindingElementType", BindingFlags.NonPublic | BindingFlags.Instance);
            var value    = (Type)property.GetValue(binding, null);

            return(value);
        }
示例#3
0
        internal static Binding CreateBinding(string type, string xml)
        {
            Binding binding = null;
            StandardBindingElement element = null;

            switch (type)
            {
            case "NetTcpBinding":
                binding = new NetTcpBinding();
                element = new NetTcpBindingElement();
                break;

            case "BasicHttpBinding":
                binding = new BasicHttpBinding();
                element = new BasicHttpBindingElement();
                break;

            case "WSHttpBinding":
                binding = new WSHttpBinding();
                element = new WSHttpBindingElement();
                break;

            case "NetNamedPipeBinding":
                binding = new NetNamedPipeBinding();
                element = new NetNamedPipeBindingElement();
                break;

            case "NetMsmqBinding":
                binding = new NetMsmqBinding();
                element = new NetMsmqBindingElement();
                break;

            default:
                binding = new NetTcpBinding();
                element = new NetTcpBindingElement();
                break;
            }

            Deserialize(xml, element);
            element.ApplyConfiguration(binding);

            return(binding);
        }