Nel realizzare un servizio WCF può rendersi necessario incrementare la dimensione massima degli array che vengono scambiati da e verso il servizio, un esempio comune può essere quello di volere passare al servizio un array rappresentante un immagine da memorizzare sul server.
Come ho già scritto in precedenza, con Silverlight3 il default binding non è piu basicHttpBinding ma un custom binding che usa BinaryMessageEncoding, per modificare la dimensione massima degli arrays è quindi necessario aggiungere un elemento ReaderQuotas opportunamente configurato, un esempio di questa configurazione la trovate di seguito:
1: <bindings>
2: <customBinding>
3: <binding name="CustomBinding">
4: <binaryMessageEncoding>
5: <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
6: maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
7: </binaryMessageEncoding>
8: <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
9: </binding>
10: </customBinding>
11: </bindings>
A differenza di WCF ‘classic’ le medesime impostazioni non sono disponibili lato client.