2015-09-21 28 views
1

我在App.config端點:在app.config中如何用C#代碼添加bindingConfiguration屬性(WCF)

<endpoint address="" 

       binding="netTcpBinding" 

       bindingConfiguration="financeBinding" 

       name="RoutingServiceEndpoint" 
       contract="System.ServiceModel.Routing.IRequestReplyRouter" /> 

的bindingConfiguration

<bindings> 
<netTcpBinding> 
    <binding name="financeBinding" closeTimeout="00:10:10" openTimeout="00:10:10" sendTimeout="00:10:10" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647"> 
     <!--transactionFlow="true"--> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <security mode="None" /> 
    </binding> 
    </netTcpBinding> 
</bindings> 

的問題是:怎麼可能我在代碼中配置這個?我需要讀取數據庫的配置並將其綁定。 :)

回答

1

有了這個,你可以在代碼中配置設置:

using System.ServiceModel;   

EndpointAddress endpoint = new EndpointAddress("http://yourAdress.svc"); 
NetTcpBinding binding = new NetTcpBinding(); 
binding.Name = "financeBinding"; 
binding.MaxBufferPoolSize = 2147483647; 

binding.ReaderQuotas.MaxDepth = 2147483647; 
binding.ReaderQuotas.MaxStringContentLength = 2147483647; 
binding.ReaderQuotas.MaxBytesPerRead = 2147483647; 
binding.ReaderQuotas.MaxNameTableCharCount = 2147483647; 

binding.OpenTimeout = new TimeSpan(0, 10, 10); 
binding.CloseTimeout = new TimeSpan(0, 10, 10); 
binding.SendTimeout = new TimeSpan(0, 10, 10); 

binding.Security.Mode = SecurityMode.None; 
yourClient client = new yourClient(binding, endpoint); 
+0

它適合我的情況 – Xin