簡體   English   中英

WCF在CustomBinding中為HttpTransportBindingElement修改ReaderQuotas

[英]WCF modifying ReaderQuotas for HttpTransportBindingElement in CustomBinding

BasicHttpBinding類有一個ReaderQuotas屬性,您可以訪問該屬性來覆蓋MaxArrayLengthMaxBytesPerRead等屬性。

CustomBinding使用HttpTransportBindingElement而不是BasicHttpBinding時,如何訪問ReaderQuotas以實現相同的功能?

即:

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

在此先感謝您的幫助。

你能嘗試以下方法:

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

希望有所幫助。

您需要使用消息編碼綁定元素TextMessageEncodingBindingElement而不是HttpTransportBindingElement

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

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

可以使用其他消息編碼器類型 (即二進制或MTOM),但如果您進行直接轉換,則basicHttpBinding的默認值為text

WSMessageEncoding的值,指示是使用MTOM還是Text / XML來編碼SOAP消息。 默認值為Text。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM