2010-01-13 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Wed, 13 Jan 2010 11:26:30 +0000 (11:26 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Wed, 13 Jan 2010 11:26:30 +0000 (11:26 -0000)
* EndpointAddressBuilder.cs : implement.

* net_2_1_raw_System.ServiceModel.dll.sources :
  add EndpointAddressBuilder.cs.

svn path=/trunk/mcs/; revision=149448

mcs/class/System.ServiceModel/ChangeLog
mcs/class/System.ServiceModel/System.ServiceModel/ChangeLog
mcs/class/System.ServiceModel/System.ServiceModel/EndpointAddressBuilder.cs
mcs/class/System.ServiceModel/net_2_1_raw_System.ServiceModel.dll.sources

index b89dc5c2aa66e5296878dfa7cead0cce0568540c..443c7a4041f2ef017a9f2f77d58cfd851cc52e13 100755 (executable)
@@ -1,3 +1,8 @@
+2010-01-13  Astushi Enomoto  <atsushi@ximian.com>
+
+       * net_2_1_raw_System.ServiceModel.dll.sources :
+         add EndpointAddressBuilder.cs.
+
 2010-01-13  Astushi Enomoto  <atsushi@ximian.com>
 
        * net_2_1_raw_System.ServiceModel.dll.sources :
index 72d2417c36a813f5b8c7aa78cdaa51fb4551970d..6750c30fec065361b9df6e812dc540b8da83f4cd 100755 (executable)
@@ -1,3 +1,7 @@
+2010-01-13  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * EndpointAddressBuilder.cs : implement.
+
 2010-01-13  Atsushi Enomoto  <atsushi@ximian.com>
 
        * BasicHttpBinding.cs : add SL3 EnableHttpCookieContainer support.
index a801c579ec2f964c2e555fad4a8bc7b62623f331..1802213f62576dc10a4b363297860ace39bae838 100644 (file)
@@ -27,6 +27,7 @@
 //
 using System;
 using System.Collections.ObjectModel;
+using System.Linq;
 using System.Xml;
 using System.ServiceModel.Channels;
 
@@ -37,7 +38,7 @@ namespace System.ServiceModel
                Collection<AddressHeader> headers = new Collection<AddressHeader> ();
                EndpointIdentity identity;
                Uri uri;
-               XmlDictionaryReader ext, meta;
+               string extension, metadata;
 
                public EndpointAddressBuilder ()
                {
@@ -55,44 +56,65 @@ namespace System.ServiceModel
                        get { return headers; }
                }
 
-               [MonoTODO]
-               public EndpointIdentity Identity {
-                       get { return identity; }
-                       set { identity = value; }
-               }
-
-               [MonoTODO]
                public Uri Uri {
                        get { return uri; }
                        set { uri = value; }
                }
 
-               [MonoTODO]
+#if !NET_2_1
+               public EndpointIdentity Identity {
+                       get { return identity; }
+                       set { identity = value; }
+               }
+
                public XmlDictionaryReader GetReaderAtExtensions ()
                {
-                       throw new NotImplementedException ();
+                       if (extension == null)
+                               return null;
+                       var r = XmlDictionaryReader.CreateDictionaryReader (XmlReader.Create (extension));
+                       r.MoveToContent ();
+                       return r;
                }
 
-               [MonoTODO]
                public XmlDictionaryReader GetReaderAtMetadata ()
                {
-                       throw new NotImplementedException ();
+                       if (metadata == null)
+                               return null;
+                       var r = XmlDictionaryReader.CreateDictionaryReader (XmlReader.Create (metadata));
+                       r.MoveToContent ();
+                       return r;
                }
 
                public void SetExtensionReader (XmlDictionaryReader reader)
                {
-                       ext = reader;
+                       if (reader == null)
+                               extension = null;
+                       else {
+                               reader.MoveToContent ();
+                               extension = reader.ReadOuterXml ();
+                       }
                }
 
                public void SetMetadataReader (XmlDictionaryReader reader)
                {
-                       meta = reader;
+                       if (reader == null)
+                               metadata = null;
+                       else {
+                               reader.MoveToContent ();
+                               metadata = reader.ReadOuterXml ();
+                       }
                }
 
                public EndpointAddress ToEndpointAddress ()
                {
                        return new EndpointAddress (uri, identity,
-                               new AddressHeaderCollection (headers), meta, ext);
+                               new AddressHeaderCollection (headers), GetReaderAtMetadata (), GetReaderAtExtensions ());
+               }
+#else
+               public EndpointAddress ToEndpointAddress ()
+               {
+                       return new EndpointAddress (uri, headers.ToArray ());
                }
+#endif
        }
 }
index 3297472efadac7b469e0868dbf2c73a801575028..557684b7af8efe77d53948003a2dc16fdef83803 100755 (executable)
@@ -178,6 +178,7 @@ System.ServiceModel/DefaultCommunicationTimeouts.cs
 System.ServiceModel/Dummy.cs
 System.ServiceModel/EndpointAddress.cs
 System.ServiceModel/EndpointAddress10.cs
+System.ServiceModel/EndpointAddressBuilder.cs
 System.ServiceModel/EndpointNotFoundException.cs
 System.ServiceModel/EnvelopeVersion.cs
 System.ServiceModel/ExceptionDetail.cs