Per un toolkit che utilizza un servizio WCF remoto, ho configurato un ChannelFactory<IMyService>
in UnityContainer.Configurare un MaxItemsInObjectGraph del client WCF quando si utilizza Unity
Ora voglio configurare il comportamento di endpoint di questo canale tramite il codice (con Unity) per applicare questo comportamento:
<behaviors>
<endpointBehaviors>
<behavior name="BigGraph">
<dataContractSerializer maxItemsInObjectGraph="1000000" />
</behavior>
</endpointBehaviors>
</behaviors>
Ho trovato questo esempio su MSDN (http://msdn.microsoft.com/en-us/library/ms732038.aspx)
ChannelFactory<IDataService> factory = new ChannelFactory<IDataService>(binding, address);
foreach (OperationDescription op in factory.Endpoint.Contract.Operations)
{
vardataContractBehavior = op.Behaviors.Find<DataContractSerializerOperationBehavior>() as DataContractSerializerOperationBehavior;
if (dataContractBehavior != null)
{
dataContractBehavior.MaxItemsInObjectGraph = 100000;
}
}
IDataService client = factory.CreateChannel();
ma ora Sono bloccato cercando di farlo in una configurazione di Unity. Devo esaminare Interception?
Per ora ho appena creato la fabbrica, applicare il comportamento e aggiungerlo come istanza al contenitore. – veertien