ongoing AnnouncementClient implementation.
[mono.git] / mcs / class / System.ServiceModel.Discovery / System.ServiceModel.Discovery / DiscoveryVersion.cs
index ac106cc2ab31517b12663c68af6f03ffac4749af..b55c71289bd92f25f6cc61bd7adfc853aa066425 100755 (executable)
@@ -36,9 +36,9 @@ namespace System.ServiceModel.Discovery
        {
                static DiscoveryVersion ()
                {
-                       v11 = new DiscoveryVersion ("WSDiscovery11");
-                       april2005 = new DiscoveryVersion ("WSDiscoveryApril2005");
-                       cd1 = new DiscoveryVersion ("WSDiscoveryCD1");
+                       v11 = new DiscoveryVersion ("WSDiscovery11", Version11.MessageContracts11.NS, "urn:docs-oasis-open-org:ws-dd:ns:discovery:2009:01", MessageVersion.Soap12WSAddressing10, typeof (Version11.IAnnouncementContract11), typeof (Version11.AnnouncementClient11));
+                       april2005 = new DiscoveryVersion ("WSDiscoveryApril2005", VersionApril2005.MessageContractsApril2005.NS, "urn:schemas-xmlsoap-org:ws:2005:04:discovery", MessageVersion.Soap12WSAddressingAugust2004, typeof (VersionApril2005.IAnnouncementContractApril2005), typeof (VersionApril2005.AnnouncementClientApril2005));
+                       cd1 = new DiscoveryVersion ("WSDiscoveryCD1", VersionCD1.MessageContractsCD1.NS, "urn:docs-oasis-open-org:ws-dd:discovery:2008:09", MessageVersion.Soap12WSAddressingAugust2004, typeof (VersionCD1.IAnnouncementContractCD1), typeof (VersionCD1.AnnouncementClientCD1));
                }
 
                static readonly DiscoveryVersion v11, april2005, cd1;
@@ -67,19 +67,27 @@ namespace System.ServiceModel.Discovery
                        case "WSDiscoveryCD1":
                                return cd1;
                        default:
-                               throw new ArgumentNullException (String.Format ("Invalid version name: {0}", name));
+                               throw new ArgumentOutOfRangeException (String.Format ("Invalid version name: {0}", name));
                        }
                }
 
-               internal DiscoveryVersion (string name)
+               internal DiscoveryVersion (string name, string ns, string adhoc, MessageVersion version, Type announcementContractType, Type announcementClientType)
                {
                        this.Name = name;
+                       this.Namespace = ns;
+                       AdhocAddress = new Uri (adhoc);
+                       MessageVersion = version;
+                       AnnouncementContractType = announcementContractType;
+                       AnnouncementClientType = announcementClientType;
                }
 
                public Uri AdhocAddress { get; private set; }
                public MessageVersion MessageVersion { get; private set; }
                public string Name { get; private set; }
                public string Namespace { get; private set; }
+               
+               internal Type AnnouncementContractType { get; private set; }
+               internal Type AnnouncementClientType { get; private set; }
 
                public override string ToString ()
                {