c# – 如何以编程方式添加maxItemsInObjectGraph而不使用配置文件?

我创建了一个这样的EndpointAddress
EndpointAddress address = new EndpointAddress("http://example.com/services/OrderService.svc");

但是我无法通过编程方式将行为添加到此端点.

行为如下:

<behaviors>
  <endpointBehaviors>
    <behavior name="NewBehavior">
      <dataContractSerializer maxItemsInObjectGraph="6553600" />
    </behavior>
  </endpointBehaviors>
</behaviors>

解决方法

在服务器上,您必须将其添加到ServiceBehavior属性中:
[ServiceBehavior(MaxItemsInObjectGraph = int.MaxValue)]

在客户端上,您必须将其应用于端点.在此示例中,您可以看到如何将其添加到ChannelFactory中的所有端点:

var factory = new ChannelFactory<IInterface>(...);
foreach (OperationDescription op in factory.Endpoint.Contract.Operations)
    {
        var dataContractBehavior = op.Behaviors.Find<DataContractSerializerOperationBehavior>();
        if (dataContractBehavior != null)
        {
            dataContractBehavior.MaxItemsInObjectGraph = int.MaxValue;
        }
    }

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...