Change Encoding key to workaround collision with Encoding parameter names used by...
[mono.git] / mcs / class / System.ServiceModel.Routing / System.ServiceModel.Routing.Configuration / RoutingExtensionElement.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Collections.ObjectModel;
4 using System.Configuration;
5 using System.ServiceModel;
6 using System.ServiceModel.Channels;
7 using System.ServiceModel.Configuration;
8 using System.ServiceModel.Description;
9 using System.ServiceModel.Dispatcher;
10
11 namespace System.ServiceModel.Routing.Configuration
12 {
13         public sealed class RoutingExtensionElement : BehaviorExtensionElement
14         {
15                 public override Type BehaviorType {
16                         get { return typeof (RoutingExtension); }
17                 }
18
19                 [ConfigurationProperty ("filterTableName", DefaultValue = null)]
20                 public string FilterTableName {
21                         get { return (string) base ["filterTableName"]; }
22                         set { base ["filterTableName"] = value; }
23                 }
24
25                 [ConfigurationProperty ("routeOnHeadersOnly", DefaultValue = true, Options = ConfigurationPropertyOptions.None)]
26                 public bool RouteOnHeadersOnly {
27                         get { return (bool) base ["routeOnHeadersOnly"]; }
28                         set { base ["routeOnHeadersOnly"] = value; }
29                 }
30
31                 [ConfigurationProperty ("soapProcessingEnabled", DefaultValue = true)]
32                 public bool SoapProcessingEnabled {
33                         get { return (bool) base ["soapProcessingEnabled"]; }
34                         set { base ["soapProcessingEnabled"] = value; }
35                 }
36
37                 protected internal override object CreateBehavior ()
38                 {
39                         var table = RoutingSection.CreateFilterTable (FilterTableName);
40
41                         var cfg = new RoutingConfiguration (table, RouteOnHeadersOnly) { SoapProcessingEnabled = this.SoapProcessingEnabled };
42                         return new RoutingBehavior (cfg);
43                 }
44         }
45 }