2013-12-03 1 views
1

Я пытаюсь отключить SoapProcessing для конечной точки (да, это должно быть сделано, не спрашивайте, почему, и контролеры сообщение не будет работать):Как установить SoapProcessing с помощью кода

MSDN docs for soapProcessing

Однако вся документация, которую я нашел, полагается на установку этого значения в файле конфигурации приложения. Я занимаюсь разработкой плагин для приложения, которое не позволяет мне включать отдельный конфигурационный файл, так что я должен установить конечную точку и привязки, и все, что с помощью кода:

// Create transport binding 
BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportWithMessageCredential); 
binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName; 

// Create client 
MySyncPortClient _service = new MySyncPortClient(binding, new EndpointAddress("https://path/to/service")); 
_service.ClientCredentials.UserName.UserName = "foo"; 
_service.ClientCredentials.UserName.Password = "bar"; 

// Set custom bindings 
BindingElementCollection elements = _service.Endpoint.Binding.CreateBindingElements(); 
elements.Find<SecurityBindingElement>().IncludeTimestamp = false; 
_service.Endpoint.Binding = new CustomBinding(elements); 

// Perform a request 
_service.DoSomething(); 

Если кто-то может мне точку в вправо, я был бы признателен. И не быть грубым, но, пожалуйста, не предлагайте использовать файл конфигурации. Это -NEEDS- выполняется через код. Если вы хотите получить полное объяснение, я могу предоставить его отдельно.

+0

Я понимаю, почему вы не можете сделать это в конфигурационном файле подключаемого модуля, но вы исключаете внесение изменений в файл конфигурации приложения, в который подключается подключаемый модуль? –

+0

К сожалению, да. – jhilgeman

+0

Хорошо, но делать это в конфигурационном файле вызывающего абонента - это то, что позволяет разные конфигурации для каждого вызывающего. Ваши абоненты не смогут изменить конфигурацию. –

ответ