我有一个WCF服务,它连接了多个客户端。
我想要做的是动态创建WCF服务消耗的客户端。
通过继承ServiceFactory<TChannel>
类来创建客户端已经完成并且非常简单。我正在努力的是如何从web.config
文件中读取端点行为并将它们添加到客户端?
代码文件
BasicHttpBinding binding = new BasicHttpBinding(bindingConfigName);
EndpointAddress endpoint = new EndpointAddress(endpointUrl);
ChannelFactory<IShoppingSoap> clientEndpoint = new ChannelFactory<IShoppingSoap>(binding, endpoint);
base.Endpoint.Behaviors.Add(*Get the behavior from the config file*);
return base.CreateChannel();
Web.config
档案:
<behaviors>
<endpointBehaviors>
<behavior name="EndpointBehaviour_GmCustom">
<dataContractSerializer maxItemsInObjectGraph="2147483646" />
<behavior>
</endpointBehaviors>
</behaviors>
答案 0 :(得分:1)
找到解决方案..我认为..你必须完成端点中的每个操作并在那里更改maxItemsInObjectGraph。
foreach (OperationDescription operation in base.Endpoint.Contract.Operations)
{
operation.Behaviors.Find<DataContractSerializerOperationBehavior>().MaxItemsInObjectGraph = 2147483646;
}
在这里找到解决方案
http://www.lapathy.com/home/2009/9/30/programmatically-setting-maxitemsinobjectgraph-in-wcf.html