Author: krasnov
Date: 2007-12-11 03:57:00 -0500 (Tue, 11 Dec 2007)
New Revision: 91075

Modified:
   trunk/mcs/class/System.Web.Services/System.Web.Services.Description/ChangeLog
   
trunk/mcs/class/System.Web.Services/System.Web.Services.Description/ProtocolReflector.cs
   trunk/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
   
trunk/mcs/class/System.Web.Services/System.Web.Services.Protocols/TypeStubManager.cs
Log:
* ProtocolReflector.cs: fixed ImportBinding method, ports with the same name 
declaration when non-default binding used, #345449 
* TypeStubManager.cs: fixed TypeStubInfo ctor, default binding name is wrong, 
when declared in WebServiceBindingAttribute, but not used. fixes #345448 


Modified: 
trunk/mcs/class/System.Web.Services/System.Web.Services.Description/ChangeLog
===================================================================
--- 
trunk/mcs/class/System.Web.Services/System.Web.Services.Description/ChangeLog   
    2007-12-11 07:59:04 UTC (rev 91074)
+++ 
trunk/mcs/class/System.Web.Services/System.Web.Services.Description/ChangeLog   
    2007-12-11 08:57:00 UTC (rev 91075)
@@ -1,3 +1,8 @@
+2007-12-11  Vladimir Krasnov <[EMAIL PROTECTED]>
+
+       * ProtocolReflector.cs: fixed ImportBinding method, ports with the same
+       name declaration when non-default binding used, #345449 
+
 2007-11-01  Gert Driesen  <[EMAIL PROTECTED]>
 
        * SoapProtocolImporter.cs: Only output Required argument for

Modified: 
trunk/mcs/class/System.Web.Services/System.Web.Services.Description/ProtocolReflector.cs
===================================================================
--- 
trunk/mcs/class/System.Web.Services/System.Web.Services.Description/ProtocolReflector.cs
    2007-12-11 07:59:04 UTC (rev 91074)
+++ 
trunk/mcs/class/System.Web.Services/System.Web.Services.Description/ProtocolReflector.cs
    2007-12-11 08:57:00 UTC (rev 91075)
@@ -278,6 +278,18 @@
                        if (bindingFull)
                        {
                                port.Binding = new XmlQualifiedName 
(binding.Name, binfo.Namespace);
+                               
+                               int n = 0;
+                               string name = binfo.Name; 
+                               bool found;
+                               do {
+
+                                       found = false;
+                                       foreach (Port p in service.Ports)
+                                               if (p.Name == name) { found = 
true; n++; name = binfo.Name + n; break; }
+                               }
+                               while (found);
+                               port.Name = name;
                                service.Ports.Add (port);
                        }
 

Modified: 
trunk/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog 
2007-12-11 07:59:04 UTC (rev 91074)
+++ trunk/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog 
2007-12-11 08:57:00 UTC (rev 91075)
@@ -1,3 +1,9 @@
+2007-12-11  Vladimir Krasnov  <[EMAIL PROTECTED]>
+
+       * TypeStubManager.cs: fixed TypeStubInfo ctor, default binding name is
+       wrong, when declared in WebServiceBindingAttribute, but not used.
+       fixes #345448 
+
 2007-11-12  Atsushi Enomoto  <[EMAIL PROTECTED]>
 
        * SoapHttpClientProtocol.cs : compare content-type in case-

Modified: 
trunk/mcs/class/System.Web.Services/System.Web.Services.Protocols/TypeStubManager.cs
===================================================================
--- 
trunk/mcs/class/System.Web.Services/System.Web.Services.Protocols/TypeStubManager.cs
        2007-12-11 07:59:04 UTC (rev 91074)
+++ 
trunk/mcs/class/System.Web.Services/System.Web.Services.Protocols/TypeStubManager.cs
        2007-12-11 08:57:00 UTC (rev 91075)
@@ -96,12 +96,18 @@
 
                        object [] o = Type.GetCustomAttributes (typeof 
(WebServiceBindingAttribute), false);
 
+                       bool defaultAdded = false;
+
                        string defaultBindingName = logicalType.WebServiceName 
+ ProtocolName;
                        if (o.Length > 0)
-                               foreach (WebServiceBindingAttribute at in o)
+                               foreach (WebServiceBindingAttribute at in o) {
                                        AddBinding (new BindingInfo (at, 
defaultBindingName, LogicalType.WebServiceNamespace));
-                       else 
-                               AddBinding (new BindingInfo (null, 
defaultBindingName, logicalType.WebServiceNamespace));
+                                       if ((at.Name == null || at.Name.Length 
== 0) || (at.Name == defaultBindingName))
+                                               defaultAdded = true;
+                               }
+                                               
+                       if (!defaultAdded)
+                               AddBindingAt (0, new BindingInfo (null, 
defaultBindingName, logicalType.WebServiceNamespace));
 
 #if NET_2_0
                        foreach (Type ifaceType in Type.GetInterfaces ()) {
@@ -228,6 +234,11 @@
                {
                        bindings.Add (info);
                }
+
+               internal void AddBindingAt (int pos, BindingInfo info)
+               {
+                       bindings.Insert (pos, info);
+               }
                
                internal BindingInfo GetBinding (string name)
                {

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to