开发者

WCF Reading Endpoint Behaviors from a web.config file

I've have a WCF service which has multiple clients that it connects to.

What I want to do is to create the clients dynamically the WCF services consumes.

Creating the clients by inheriting from the ServiceFactory<TChannel> class is done and very simple. What I'm struggling with is how to read Endpoint behaviours from the web.config file and add them to the clients?

Code file

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 file :

<behaviors>  
    <endpointBehaviors>  
       <behavior name="EndpointBehaviour_GmCustom">
         <dataContractSerializer maxItemsInObjectGraph="2147483646" />  
       <behavior>  
    </endpointBehaviors>  
</behaviors>


Found the solution.. i think.. you have to go through each of the operations in the endpoint and change the maxItemsInObjectGraph there.

foreach (OperationDescription operation in base.Endpoint.Contract.Operations)    
{    
operation.Behaviors.Find<DataContractSerializerOperationBehavior>().MaxItemsInObjectGraph = 2147483646;                    
}

Found the solution here

http://www.lapathy.com/home/2009/9/30/programmatically-setting-maxitemsinobjectgraph-in-wcf.html

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜