2012-02-01 15 views
4

BasicHttpBindingクラスを使用すると、属性をオーバーライドするためにアクセスすることができReaderQuotas性質を持っているにHttpTransportBindingElementためReaderQuotasを変更するなどHttpTransportBindingElementを使用しているとき、私は同じことを達成するためにReaderQuotasにアクセスするにはどうすればよいなどMaxArrayLengthMaxBytesPerReadWCFはCustomBinding

としてBasicHttpBindingの代わりにCustomBindingの範囲内にありますか?

すなわち:あなたの助けを事前に

var bindingElement = new HttpTransportBindingElement(); 
bindingElement.MaxBufferSize = 65536; // works 
bindingElement.ReaderQuotas.MaxArrayLength = 65536; // error no ReaderQuotas member 

var binding = new CustomBinding(bindingElements); 
binding .ReaderQuotas.MaxArrayLength = 65536; // also no ReaderQuotas member 

感謝。

答えて

2

あなたは以下試すことができます:助け

var binding = new CustomBinding(); 
var myReaderQuotas = new XmlDictionaryReaderQuotas(); 
myReaderQuotas.MaxStringContentLength = 5242880; 
binding.GetType().GetProperty("ReaderQuotas").SetValue(binding, myReaderQuotas, null); 

希望。

0

あなたが結合要素TextMessageEncodingBindingElementないHttpTransportBindingElementをコードするメッセージを使用する必要があります。

:あなたがまっすぐに変換 the default for basicHttpBinding is textを行っている場合、他の message encoder types(すなわちバイナリまたはMTOM)を使用することができ

 var bindingElement = new TextMessageEncodingBindingElement(); 
     bindingElement.ReaderQuotas.MaxArrayLength = 65536; 

     var binding = new CustomBinding(); 
     binding.Elements.Add(bindingElement); 

が、

MTOMまたはText/XML を使用してSOAPメッセージをエンコードするかどうかを示すWSMessageEncodingの値。デフォルト値はTextです。

関連する問題