WCF 修改 CustomBinding 中 HttpTransportBindingElement 的 ReaderQuotas

yog*_*ear 6 .net c# wcf wcf-binding

该类BasicHttpBinding有一个ReaderQuotas属性,您可以访问该属性来覆盖MaxArrayLengthMaxBytesPerRead等属性。

当使用a 中的a而不是 时,如何才能ReaderQuotas实现相同的目标?HttpTransportBindingElementCustomBindingBasicHttpBinding

IE:

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
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助。

Raj*_*esh 2

您可以尝试以下方法吗:

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

希望有帮助。