WCF extensibility
You can implement your own binding, behavior, or channel when using customBinding by defining the assemblyPath
and typeName
by modifying the configuration file <script directory>/WSDL/@config/[your config].stss
.
The assemblyPath
attribute should have a value of either the full path of the dll or its relative path to script directory.
The typeName
attribute should have the full type name: ns.typeName
.
Binding
Name the scenario attribute in the protocols element and provide the assemblyPath
and typeName
attributes.
The class you use for binding is inherited from System.ServiceModel.Channels.Binding
.
Channel
Add a new element under the customization node. You can specify any name for the element, however the element must contain the two attributes:assemblyPath
andtypeName
.
The class to use for binding is inherited from System.ServiceModel.Channel.BindingElement
.
Note: This works with customBinding scenarios only.
Behavior
Add a new element under the behaviors element (which is under endpointBehavior
) and add the two attributes assemblyPath
and typeName
.
To bind the new element, implement the System.ServiceModel.Description.IEndpointBehavior
class.
Note: If you inherit from System.ServiceModel.Description.ClientCredentials
, the client credentials from this class will be used.
Examples of Channel and Behavior
<protocols scenario="customBinding" uiType="customBinding" xmlns="http://ot/Services/config">
<mode>Private</mode>
<customization>
<textMessageEncoding />
<preferlrhttpTransport />
<myChannel assemblyPath="CustomChannel.dll" typeName="CustomChannel.WCFChannel" />
</customization>
<behaviors>
<endpointBehaviors>
<behavior>
<clientVia viaUri="qwqwq" />
<myBehavior assemblyPath="CustomBehavior.dll" typeName="CustomBehavior.WCFbehavior" />
</behavior>
</endpointBehaviors>
</behaviors>
</protocols>
An example of overriding the whole binding (the configuration may contain just one line):
<protocols scenario="userBinding" assemblyPath="WCFBinding.dll" typeName=" WCFBinding.Binding"/>