Поведение конечной точки чтения WCF из файла web.config - PullRequest
2 голосов
/ 21 сентября 2010

У меня есть служба 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 Ответ

1 голос
/ 21 сентября 2010

Нашел решение .. я думаю .. вам нужно пройти через каждую из операций в конечной точке и изменить там 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...