WCF CustomBinding dynamically
-
Sunday, May 17, 2009 6:45 PM
Hello,
Is it posible to configure customBinding dynamically in code not in app.config file?
My customBindig looks now like:
<customBinding> <binding name="MyBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"> <textMessageEncoding messageVersion="Soap11"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> </textMessageEncoding> <security authenticationMode="UserNameOverTransport" includeTimestamp="false"> </security> <httpsTransport></httpsTransport> </binding> </customBinding>But i would like to configure that from code... please help
All Replies
-
Sunday, May 17, 2009 7:59 PM
Hi,
It'll look like
BindingElementCollection outputBec = new BindingElementCollection(); // <httpsTransport></httpsTransport> HttpsTransportBindingElement httpsTransport = new HttpsTransportBindingElement(); outputBec.Add(httpsTransport); TextMessageEncodingBindingElement textMessageEncoding = new TextMessageEncodingBindingElement(); outputBec.Add(textMessageEncoding); // <textMessageEncoding messageVersion="Soap11"> textMessageEncoding.MessageVersion = MessageVersion.Soap11; /* <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> */ textMessageEncoding.ReaderQuotas.MaxDepth = 32; textMessageEncoding.ReaderQuotas.MaxStringContentLength = 8192; textMessageEncoding.ReaderQuotas.MaxArrayLength = 16384; textMessageEncoding.ReaderQuotas.MaxBytesPerRead = 4096; textMessageEncoding.ReaderQuotas.MaxNameTableCharCount = 16384; // <security authenticationMode="UserNameOverTransport" includeTimestamp="false"> // </security> TransportSecurityBindingElement security = SecurityBindingElement.CreateUserNameOverTransportBindingElement(); security.IncludeTimestamp = false; outputBec.Add(security); CustomBinding binding = new CustomBinding(outputBec); /* <binding name="MyBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"> */ binding.CloseTimeout = TimeSpan.Parse("00:01:00"); binding.OpenTimeout = TimeSpan.Parse("00:01:00"); binding.ReceiveTimeout = TimeSpan.Parse("00:10:00"); binding.SendTimeout = TimeSpan.Parse("00:01:00"); binding.Name = "MyBinding";
Regards- Marked As Answer by Albin123 Wednesday, May 20, 2009 7:10 PM
-
Wednesday, May 20, 2009 7:10 PM
That works! Great thanks!

