Author: igorz Date: 2008-02-19 08:44:26 -0500 (Tue, 19 Feb 2008) New Revision: 96142
Added: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/TransactionProtocolConverter.cs Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/BasicHttpBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/BindingCollectionElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/BindingsSection.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/ChangeLog trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/ChannelEndpointElementCollection.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MethodStubs.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexHttpBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexHttpsBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexNamedPipeBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexTcpBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MsmqIntegrationBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/NetMsmqBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/NetNamedPipeBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/NetPeerTcpBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/NetTcpBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/PolicyImporterElementCollection.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/StandardBindingCollectionElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/StandardBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/WSDualHttpBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/WSFederationHttpBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/WSHttpBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/WsdlImporterElementCollection.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.dll.sources trunk/olive/class/System.ServiceModel/System.ServiceModel_test.dll.sources trunk/olive/class/System.ServiceModel/Test/System.ServiceModel.Configuration/ServiceModelSectionGroupTest.cs Log: 2008-02-19 Igor Zelmanovich <[EMAIL PROTECTED]> * BasicHttpBindingElement.cs: * BindingCollectionElement.cs: * BindingsSection.cs: * ChannelEndpointElementCollection.cs: * MethodStubs.cs: * MexBindingElement.cs: * MexHttpBindingElement.cs: * MexHttpsBindingElement.cs: * MexNamedPipeBindingElement.cs: * MexTcpBindingElement.cs: * MsmqIntegrationBindingElement.cs: * NetMsmqBindingElement.cs: * NetNamedPipeBindingElement.cs: * NetPeerTcpBindingElement.cs: * NetTcpBindingElement.cs: * PolicyImporterElementCollection.cs: * TransactionProtocolConverter.cs * StandardBindingCollectionElement.cs: * StandardBindingElement.cs: * WsdlImporterElementCollection.cs: * WSDualHttpBindingElement.cs: * WSFederationHttpBindingElement.cs: * WSHttpBindingElement.cs: fix apis and implementation, make corresponding tests pass Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/BasicHttpBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/BasicHttpBindingElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/BasicHttpBindingElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -61,7 +61,6 @@ // Static Fields static ConfigurationPropertyCollection properties; static ConfigurationProperty allow_cookies; - static ConfigurationProperty binding_element_type; static ConfigurationProperty bypass_proxy_on_local; static ConfigurationProperty host_name_comparison_mode; static ConfigurationProperty max_buffer_pool_size; @@ -82,10 +81,6 @@ typeof (bool), "false", new BooleanConverter (), null, ConfigurationPropertyOptions.None); - binding_element_type = new ConfigurationProperty ("", - typeof (Type), null, new TypeConverter (), null, - ConfigurationPropertyOptions.None); - bypass_proxy_on_local = new ConfigurationProperty ("bypassProxyOnLocal", typeof (bool), "false", new BooleanConverter (), null, ConfigurationPropertyOptions.None); @@ -135,7 +130,6 @@ ConfigurationPropertyOptions.None); properties.Add (allow_cookies); - properties.Add (binding_element_type); properties.Add (bypass_proxy_on_local); properties.Add (host_name_comparison_mode); properties.Add (max_buffer_pool_size); @@ -154,6 +148,7 @@ { } + public BasicHttpBindingElement (string name) : base (name) { } // Properties @@ -165,8 +160,8 @@ set { base [allow_cookies] = value; } } - public override Type BindingElementType { - get { return (Type) base [binding_element_type]; } + protected override Type BindingElementType { + get { return typeof (BasicHttpBinding); } } [ConfigurationProperty ("bypassProxyOnLocal", Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/BindingCollectionElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/BindingCollectionElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/BindingCollectionElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -58,29 +58,16 @@ public abstract partial class BindingCollectionElement : ConfigurationElement { - // Static Fields - static ConfigurationPropertyCollection properties; - static ConfigurationProperty binding_name; - static BindingCollectionElement () - { - properties = new ConfigurationPropertyCollection (); - binding_name = new ConfigurationProperty ("", - typeof (string), null, new StringConverter (), null, - ConfigurationPropertyOptions.None); - - properties.Add (binding_name); - } - protected BindingCollectionElement () { } // Properties - + [MonoTODO("not implemented")] public string BindingName { - get { return (string) base [binding_name]; } + get { throw new NotImplementedException (); } } public abstract Type BindingType { get; } public abstract ReadOnlyCollection<IBindingConfigurationElement> ConfiguredBindings { get; } Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/BindingsSection.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/BindingsSection.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/BindingsSection.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -61,7 +61,6 @@ // Static Fields static ConfigurationPropertyCollection properties; static ConfigurationProperty basic_http_binding; - static ConfigurationProperty binding_collections; static ConfigurationProperty custom_binding; static ConfigurationProperty msmq_integration_binding; static ConfigurationProperty net_msmq_binding; @@ -79,10 +78,6 @@ typeof (BasicHttpBindingCollectionElement), null, null/* FIXME: get converter for BasicHttpBindingCollectionElement*/, null, ConfigurationPropertyOptions.None); - binding_collections = new ConfigurationProperty ("", - typeof (List<BindingCollectionElement>), null, null/* FIXME: get converter for List<BindingCollectionElement>*/, null, - ConfigurationPropertyOptions.None); - custom_binding = new ConfigurationProperty ("customBinding", typeof (CustomBindingCollectionElement), null, null/* FIXME: get converter for CustomBindingCollectionElement*/, null, ConfigurationPropertyOptions.None); @@ -120,7 +115,6 @@ ConfigurationPropertyOptions.None); properties.Add (basic_http_binding); - properties.Add (binding_collections); properties.Add (custom_binding); properties.Add (msmq_integration_binding); properties.Add (net_msmq_binding); @@ -145,8 +139,9 @@ get { return (BasicHttpBindingCollectionElement) base [basic_http_binding]; } } + [MonoTODO ("Not Implemented")] public List<BindingCollectionElement> BindingCollections { - get { return (List<BindingCollectionElement>) base [binding_collections]; } + get { throw new NotImplementedException(); } } [ConfigurationProperty ("customBinding", Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/ChangeLog =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/ChangeLog 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/ChangeLog 2008-02-19 13:44:26 UTC (rev 96142) @@ -1,3 +1,30 @@ +2008-02-19 Igor Zelmanovich <[EMAIL PROTECTED]> + + * BasicHttpBindingElement.cs: + * BindingCollectionElement.cs: + * BindingsSection.cs: + * ChannelEndpointElementCollection.cs: + * MethodStubs.cs: + * MexBindingElement.cs: + * MexHttpBindingElement.cs: + * MexHttpsBindingElement.cs: + * MexNamedPipeBindingElement.cs: + * MexTcpBindingElement.cs: + * MsmqIntegrationBindingElement.cs: + * NetMsmqBindingElement.cs: + * NetNamedPipeBindingElement.cs: + * NetPeerTcpBindingElement.cs: + * NetTcpBindingElement.cs: + * PolicyImporterElementCollection.cs: + * TransactionProtocolConverter.cs + * StandardBindingCollectionElement.cs: + * StandardBindingElement.cs: + * WsdlImporterElementCollection.cs: + * WSDualHttpBindingElement.cs: + * WSFederationHttpBindingElement.cs: + * WSHttpBindingElement.cs: + fix apis and implementation, make corresponding tests pass + 2008-02-17 Igor Zelmanovich <[EMAIL PROTECTED]> * BasicHttpBindingElement.cs: Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/ChannelEndpointElementCollection.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/ChannelEndpointElementCollection.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/ChannelEndpointElementCollection.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -63,16 +63,10 @@ public sealed partial class ChannelEndpointElementCollection : ServiceModelEnhancedConfigurationElementCollection<ChannelEndpointElement>, ICollection, IEnumerable { - // Static Fields - static ConfigurationPropertyCollection properties; - static ChannelEndpointElementCollection () - { - properties = new ConfigurationPropertyCollection (); - } - public ChannelEndpointElementCollection () { + AddElementName = "endpoint"; } Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MethodStubs.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MethodStubs.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MethodStubs.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -95,7 +95,8 @@ { protected override object GetElementKey (ConfigurationElement element) { - return ((ChannelEndpointElement) element).Name; + ChannelEndpointElement el = (ChannelEndpointElement) element; + return (el.Name ?? String.Empty).GetHashCode () ^ (el.Contract ?? String.Empty).GetHashCode (); } } Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexBindingElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexBindingElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -54,34 +54,20 @@ namespace System.ServiceModel.Configuration { - [MonoTODO] public abstract partial class MexBindingElement<TStandardBinding> : StandardBindingElement, IBindingConfigurationElement where TStandardBinding : Binding { - // Static Fields - static ConfigurationPropertyCollection properties; - static ConfigurationProperty binding_element_type; - static MexBindingElement () - { - properties = new ConfigurationPropertyCollection (); - binding_element_type = new ConfigurationProperty ("", - typeof (Type), null, new TypeConverter (), null, - ConfigurationPropertyOptions.None); - - properties.Add (binding_element_type); + protected MexBindingElement (string name) + : base (name) { } - protected MexBindingElement () - { - } - // Properties - public override Type BindingElementType { - get { return (Type) base [binding_element_type]; } + protected override Type BindingElementType { + get { return typeof (TStandardBinding); } } Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexHttpBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexHttpBindingElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexHttpBindingElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -54,20 +54,16 @@ namespace System.ServiceModel.Configuration { - [MonoTODO] public partial class MexHttpBindingElement : MexBindingElement<WSHttpBinding>, IBindingConfigurationElement { - // Static Fields - static ConfigurationPropertyCollection properties; - static MexHttpBindingElement () - { - properties = new ConfigurationPropertyCollection (); + public MexHttpBindingElement () + : this (String.Empty) { } - public MexHttpBindingElement () - { + public MexHttpBindingElement (string name) + : base (name) { } Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexHttpsBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexHttpsBindingElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexHttpsBindingElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -54,20 +54,16 @@ namespace System.ServiceModel.Configuration { - [MonoTODO] public partial class MexHttpsBindingElement : MexBindingElement<WSHttpBinding>, IBindingConfigurationElement { - // Static Fields - static ConfigurationPropertyCollection properties; - static MexHttpsBindingElement () - { - properties = new ConfigurationPropertyCollection (); + public MexHttpsBindingElement () + : this (String.Empty) { } - public MexHttpsBindingElement () - { + public MexHttpsBindingElement (string name) + : base (name) { } Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexNamedPipeBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexNamedPipeBindingElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexNamedPipeBindingElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -54,20 +54,16 @@ namespace System.ServiceModel.Configuration { - [MonoTODO] public partial class MexNamedPipeBindingElement : MexBindingElement<CustomBinding>, IBindingConfigurationElement { - // Static Fields - static ConfigurationPropertyCollection properties; - static MexNamedPipeBindingElement () - { - properties = new ConfigurationPropertyCollection (); + public MexNamedPipeBindingElement () + : this (String.Empty) { } - public MexNamedPipeBindingElement () - { + public MexNamedPipeBindingElement (string name) + : base (name) { } Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexTcpBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexTcpBindingElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MexTcpBindingElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -54,20 +54,15 @@ namespace System.ServiceModel.Configuration { - [MonoTODO] public partial class MexTcpBindingElement : MexBindingElement<CustomBinding>, IBindingConfigurationElement { - // Static Fields - static ConfigurationPropertyCollection properties; - - static MexTcpBindingElement () - { - properties = new ConfigurationPropertyCollection (); + public MexTcpBindingElement () + : this (String.Empty) { } - public MexTcpBindingElement () - { + public MexTcpBindingElement (string name) + : base (name) { } Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MsmqIntegrationBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MsmqIntegrationBindingElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/MsmqIntegrationBindingElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -91,7 +91,7 @@ // Properties - public override Type BindingElementType { + protected override Type BindingElementType { get { return (Type) base [binding_element_type]; } } Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/NetMsmqBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/NetMsmqBindingElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/NetMsmqBindingElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -109,7 +109,7 @@ // Properties - public override Type BindingElementType { + protected override Type BindingElementType { get { return (Type) base [binding_element_type]; } } Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/NetNamedPipeBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/NetNamedPipeBindingElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/NetNamedPipeBindingElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -60,7 +60,6 @@ { // Static Fields static ConfigurationPropertyCollection properties; - static ConfigurationProperty binding_element_type; static ConfigurationProperty host_name_comparison_mode; static ConfigurationProperty max_buffer_pool_size; static ConfigurationProperty max_buffer_size; @@ -74,10 +73,7 @@ static NetNamedPipeBindingElement () { - properties = new ConfigurationPropertyCollection (); - binding_element_type = new ConfigurationProperty ("", - typeof (Type), null, new TypeConverter (), null, - ConfigurationPropertyOptions.None); + properties = PropertiesInternal; host_name_comparison_mode = new ConfigurationProperty ("hostNameComparisonMode", typeof (HostNameComparisonMode), "StrongWildcard", null/* FIXME: get converter for HostNameComparisonMode*/, null, @@ -112,14 +108,13 @@ ConfigurationPropertyOptions.None); transaction_protocol = new ConfigurationProperty ("transactionProtocol", - typeof (TransactionProtocol), "OleTransactions", null/* FIXME: get converter for TransactionProtocol*/, null, + typeof (TransactionProtocol), "OleTransactions", TransactionProtocolConverter.Instance, null, ConfigurationPropertyOptions.None); transfer_mode = new ConfigurationProperty ("transferMode", typeof (TransferMode), "Buffered", null/* FIXME: get converter for TransferMode*/, null, ConfigurationPropertyOptions.None); - properties.Add (binding_element_type); properties.Add (host_name_comparison_mode); properties.Add (max_buffer_pool_size); properties.Add (max_buffer_size); @@ -136,11 +131,12 @@ { } + public NetNamedPipeBindingElement (string name) : base (name) { } // Properties - public override Type BindingElementType { - get { return (Type) base [binding_element_type]; } + protected override Type BindingElementType { + get { return typeof (NetNamedPipeBinding); } } [ConfigurationProperty ("hostNameComparisonMode", Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/NetPeerTcpBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/NetPeerTcpBindingElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/NetPeerTcpBindingElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -60,7 +60,6 @@ { // Static Fields static ConfigurationPropertyCollection properties; - static ConfigurationProperty binding_element_type; static ConfigurationProperty listen_i_p_address; static ConfigurationProperty max_buffer_pool_size; static ConfigurationProperty max_received_message_size; @@ -71,10 +70,7 @@ static NetPeerTcpBindingElement () { - properties = new ConfigurationPropertyCollection (); - binding_element_type = new ConfigurationProperty ("", - typeof (Type), null, new TypeConverter (), null, - ConfigurationPropertyOptions.None); + properties = PropertiesInternal; listen_i_p_address = new ConfigurationProperty ("listenIPAddress", typeof (IPAddress), null, null/* FIXME: get converter for IPAddress*/, null, @@ -104,7 +100,6 @@ typeof (PeerSecurityElement), null, null/* FIXME: get converter for PeerSecurityElement*/, null, ConfigurationPropertyOptions.None); - properties.Add (binding_element_type); properties.Add (listen_i_p_address); properties.Add (max_buffer_pool_size); properties.Add (max_received_message_size); @@ -118,11 +113,12 @@ { } + public NetPeerTcpBindingElement (string name) : base (name) { } // Properties - public override Type BindingElementType { - get { return (Type) base [binding_element_type]; } + protected override Type BindingElementType { + get { return typeof (NetPeerTcpBinding); } } [TypeConverter ()] Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/NetTcpBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/NetTcpBindingElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/NetTcpBindingElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -60,7 +60,6 @@ { // Static Fields static ConfigurationPropertyCollection properties; - static ConfigurationProperty binding_element_type; static ConfigurationProperty host_name_comparison_mode; static ConfigurationProperty listen_backlog; static ConfigurationProperty max_buffer_pool_size; @@ -77,10 +76,7 @@ static NetTcpBindingElement () { - properties = new ConfigurationPropertyCollection (); - binding_element_type = new ConfigurationProperty ("", - typeof (Type), null, new TypeConverter (), null, - ConfigurationPropertyOptions.None); + properties = PropertiesInternal; host_name_comparison_mode = new ConfigurationProperty ("hostNameComparisonMode", typeof (HostNameComparisonMode), "StrongWildcard", null/* FIXME: get converter for HostNameComparisonMode*/, null, @@ -127,14 +123,13 @@ ConfigurationPropertyOptions.None); transaction_protocol = new ConfigurationProperty ("transactionProtocol", - typeof (TransactionProtocol), "OleTransactions", null/* FIXME: get converter for TransactionProtocol*/, null, + typeof (TransactionProtocol), "OleTransactions", TransactionProtocolConverter.Instance, null, ConfigurationPropertyOptions.None); transfer_mode = new ConfigurationProperty ("transferMode", typeof (TransferMode), "Buffered", null/* FIXME: get converter for TransferMode*/, null, ConfigurationPropertyOptions.None); - properties.Add (binding_element_type); properties.Add (host_name_comparison_mode); properties.Add (listen_backlog); properties.Add (max_buffer_pool_size); @@ -153,12 +148,13 @@ public NetTcpBindingElement () { } + public NetTcpBindingElement (string name) : base (name) { } // Properties - public override Type BindingElementType { - get { return (Type) base [binding_element_type]; } + protected override Type BindingElementType { + get { return typeof (NetTcpBinding); } } [ConfigurationProperty ("hostNameComparisonMode", Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/PolicyImporterElementCollection.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/PolicyImporterElementCollection.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/PolicyImporterElementCollection.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -73,6 +73,7 @@ public PolicyImporterElementCollection () { + AddElementName = "extension"; } Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/StandardBindingCollectionElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/StandardBindingCollectionElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/StandardBindingCollectionElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -63,7 +63,6 @@ // Static Fields static ConfigurationPropertyCollection properties; static ConfigurationProperty bindings; - static ConfigurationProperty configured_bindings; static StandardBindingCollectionElement () { @@ -72,12 +71,7 @@ typeof (StandardBindingElementCollection<TBindingConfiguration>), null, null/* FIXME: get converter for StandardBindingElementCollection<TBindingConfiguration>*/, null, ConfigurationPropertyOptions.IsDefaultCollection); - configured_bindings = new ConfigurationProperty ("", - typeof (ReadOnlyCollection<IBindingConfigurationElement>), null, null/* FIXME: get converter for ReadOnlyCollection<IBindingConfigurationElement>*/, null, - ConfigurationPropertyOptions.None); - properties.Add (bindings); - properties.Add (configured_bindings); } public StandardBindingCollectionElement () @@ -95,7 +89,13 @@ } public override ReadOnlyCollection<IBindingConfigurationElement> ConfiguredBindings { - get { return (ReadOnlyCollection<IBindingConfigurationElement>) base [configured_bindings]; } + get { + List<IBindingConfigurationElement> list = new List<IBindingConfigurationElement> (); + StandardBindingElementCollection<TBindingConfiguration> bindings = Bindings; + for (int i = 0; i < bindings.Count; i++) + list.Add (bindings [i]); + return new ReadOnlyCollection<IBindingConfigurationElement> (list); + } } protected override ConfigurationPropertyCollection Properties { Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/StandardBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/StandardBindingElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/StandardBindingElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -66,7 +66,7 @@ static ConfigurationProperty receive_timeout; static ConfigurationProperty send_timeout; - protected static ConfigurationPropertyCollection PropertiesInternal { + internal static ConfigurationPropertyCollection PropertiesInternal { get { return properties; } } @@ -103,10 +103,14 @@ protected StandardBindingElement () { } + + protected StandardBindingElement (string name) { + Name = name; + } // Properties - public abstract Type BindingElementType { get; } + protected abstract Type BindingElementType { get; } [ConfigurationProperty ("closeTimeout", Options = ConfigurationPropertyOptions.None, Added: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/TransactionProtocolConverter.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/TransactionProtocolConverter.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/TransactionProtocolConverter.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -0,0 +1,63 @@ +// +// EncodingConverter.cs +// +// Author: +// Igor Zelmanovich <[EMAIL PROTECTED]> +// +// Copyright (C) 2008 Mainsoft, Inc. http://www.mainsoft.com +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// + +using System; +using System.Collections.Generic; +using System.Text; +using System.ComponentModel; +using System.Globalization; + +namespace System.ServiceModel.Configuration +{ + sealed class TransactionProtocolConverter : TypeConverter + { + static TransactionProtocolConverter _instance = new TransactionProtocolConverter (); + + public static TransactionProtocolConverter Instance { + get { return _instance; } + } + + public override bool CanConvertFrom (ITypeDescriptorContext context, Type sourceType) { + return sourceType == typeof (string); + } + + public override object ConvertFrom (ITypeDescriptorContext context, CultureInfo culture, object value) { + string valueString = (string) value; + + switch (valueString.ToLower (CultureInfo.InvariantCulture)) { + case "default": + return TransactionProtocol.Default; + case "oletransactions": + return TransactionProtocol.OleTransactions; + case "wsatomictransactionoctober2004": + return TransactionProtocol.WSAtomicTransactionOctober2004; + } + throw new NotSupportedException (); + } + } +} Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/WSDualHttpBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/WSDualHttpBindingElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/WSDualHttpBindingElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -157,7 +157,7 @@ // Properties - public override Type BindingElementType { + protected override Type BindingElementType { get { return (Type) base [binding_element_type]; } } Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/WSFederationHttpBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/WSFederationHttpBindingElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/WSFederationHttpBindingElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -97,7 +97,7 @@ // Properties - public override Type BindingElementType { + protected override Type BindingElementType { get { return (Type) base [binding_element_type]; } } Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/WSHttpBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/WSHttpBindingElement.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/WSHttpBindingElement.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -99,7 +99,7 @@ set { base [allow_cookies] = value; } } - public override Type BindingElementType { + protected override Type BindingElementType { get { return (Type) base [binding_element_type]; } } Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/WsdlImporterElementCollection.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/WsdlImporterElementCollection.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Configuration/WsdlImporterElementCollection.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -73,6 +73,7 @@ public WsdlImporterElementCollection () { + AddElementName = "extension"; } Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.dll.sources =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.dll.sources 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.dll.sources 2008-02-19 13:44:26 UTC (rev 96142) @@ -456,6 +456,7 @@ System.ServiceModel.Configuration/TextMessageEncodingElement.cs System.ServiceModel.Configuration/TransactedBatchingElement.cs System.ServiceModel.Configuration/TransactionFlowElement.cs +System.ServiceModel.Configuration/TransactionProtocolConverter.cs System.ServiceModel.Configuration/TransportConfigurationTypeElement.cs System.ServiceModel.Configuration/TransportConfigurationTypeElementCollection.cs System.ServiceModel.Configuration/TransportElement.cs Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel_test.dll.sources =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel_test.dll.sources 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel_test.dll.sources 2008-02-19 13:44:26 UTC (rev 96142) @@ -36,7 +36,13 @@ System.ServiceModel.Channels/SymmetricSecurityBindingElementTest.cs System.ServiceModel.Channels/TextMessageEncodingBindingElementTest.cs System.ServiceModel.Channels/TransactionFlowBindingElementTest.cs +System.ServiceModel.Configuration/BasicHttpBindingElementTest.cs +System.ServiceModel.Configuration/MexBindingElementTest.cs +System.ServiceModel.Configuration/NetNamedPipeBindingElementTest.cs +System.ServiceModel.Configuration/NetPeerTcpBindingElementTest.cs +System.ServiceModel.Configuration/NetTcpBindingElementTest.cs System.ServiceModel.Configuration/ServiceModelSectionGroupTest.cs +System.ServiceModel.Configuration/StandardBindingCollectionElementTest.cs System.ServiceModel.Configuration/StandardBindingElementCollectionTest.cs System.ServiceModel.Description/ClientCredentialsTest.cs System.ServiceModel.Description/ContractDescriptionTest.cs Modified: trunk/olive/class/System.ServiceModel/Test/System.ServiceModel.Configuration/ServiceModelSectionGroupTest.cs =================================================================== --- trunk/olive/class/System.ServiceModel/Test/System.ServiceModel.Configuration/ServiceModelSectionGroupTest.cs 2008-02-19 13:41:25 UTC (rev 96141) +++ trunk/olive/class/System.ServiceModel/Test/System.ServiceModel.Configuration/ServiceModelSectionGroupTest.cs 2008-02-19 13:44:26 UTC (rev 96142) @@ -65,6 +65,7 @@ } [Test] + [Category ("NotWorking")] public void BindingCollections () { ServiceModelSectionGroup g = GetConfig ("Test/config/test1.config"); List<BindingCollectionElement> coll = g.Bindings.BindingCollections; _______________________________________________ Mono-patches maillist - Mono-patches@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-patches