У вас есть два основных варианта:
1) либо вы выставляете свое поведение через атрибут, чтобы его можно было добавить в файл конфигурации сервера - что-то вроде этого:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="Default">
<YourCustomMessageEncoderBehavior />
</behavior>
</serviceBehaviors>
</behaviors>
2) или вы можете создать свой собственный ServiceHost
, который обязательно добавит это поведение в список режимов отправки, если его там еще нет.
class YourCustomServiceHost : ServiceHost
{
public YourCustomServiceHost(Type serviceType, params Uri[] baseAddresses)
: base(serviceType, baseAddresses) { }
protected override void ApplyConfiguration()
{
base.ApplyConfiguration();
YourCustomMessageEncodingBehavior behavior =
this.Description.Behaviors.Find<YourCustomMessageEncodingBehavior>();
if (behavior == null)
{
behavior = new YourCustomMessageEncodingBehavior();
this.Description.Behaviors.Add(behavior);
}
else
{
return;
}
}
}
Марк