WCF从web.config文件中读取端点行为

时间:2010-09-21 11:02:08

标签: c# wcf web-config

我有一个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>

1 个答案:

答案 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