Клиентская часть CustomMessageInspector, как заставить этот код работать из exe-файла? - PullRequest
0 голосов
/ 01 марта 2012

Привет

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

https://gist.github.com/1076635

Но мне тяжело запустить его из проекта winform, действительно ли мне нужно поместить его в библиотеку классов, чтобы заставить его работать?

BestRegards

Редактировать 1:

Так выглядит мой экземпляр службы на стороне клиента.

    ClientService clientService = new ClientService();
    InstanceContext context = new InstanceContext(clientService);

    DuplexChannelFactory<MyApp.ServiceContracts.IMyAppClientService> factory = new DuplexChannelFactory<MyApp.ServiceContracts.IMyAppClientService>(context, connectionName);
    factory.Credentials.UserName.UserName = anvandarNamn;
    factory.Credentials.UserName.Password = password;
    return factory.CreateChannel();

А вот так мой текущий тег поведения выглядит в app.config:

<behaviors>
  <endpointBehaviors>
    <behavior name="BasicBehavior">
      <CustomMessageInspector/>
      <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
    </behavior>
  </endpointBehaviors>
</behaviors>

1 Ответ

0 голосов
/ 01 марта 2012

Отредактировано

ClientService clientService = new ClientService();

clientService.Endpoint.Behaviors.Add(new YourBehaviorThatApplysYourExtension());

InstanceContext context = new InstanceContext(clientService);

DuplexChannelFactory<MyApp.ServiceContracts.IMyAppClientService> factory = new 
   DuplexChannelFactory<MyApp.ServiceContracts.IMyAppClientService>(context);
factory.Credentials.UserName.UserName = anvandarNamn;
factory.Credentials.UserName.Password = password;
return factory.CreateChannel();
...