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); }
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); }
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); }