* HttpSimpleProtocolImporter.cs: Fixed case of generated methods to match
authorLluis Sanchez <lluis@novell.com>
Wed, 2 Jun 2004 13:43:45 +0000 (13:43 -0000)
committerLluis Sanchez <lluis@novell.com>
Wed, 2 Jun 2004 13:43:45 +0000 (13:43 -0000)
  MS behavior. Always use import input parameters as System.String.
* ProtocolImporter.cs: Remove _x0020_ from type names.
* SoapProtocolImporter.cs: Fixed case of generated methods to match
  MS behavior.

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

mcs/class/System.Web.Services/System.Web.Services.Description/ChangeLog
mcs/class/System.Web.Services/System.Web.Services.Description/HttpSimpleProtocolImporter.cs
mcs/class/System.Web.Services/System.Web.Services.Description/ProtocolImporter.cs
mcs/class/System.Web.Services/System.Web.Services.Description/SoapProtocolImporter.cs

index b21f315789d68c5f33d3a9727c0b7948981fbe31..f617811ebdfc991bbc5745a9e92a24ef7e63fe4e 100644 (file)
@@ -1,3 +1,11 @@
+2004-06-02  Lluis Sanchez Gual  <lluis@ximian.com>
+
+       * HttpSimpleProtocolImporter.cs: Fixed case of generated methods to match
+         MS behavior. Always use import input parameters as System.String.
+       * ProtocolImporter.cs: Remove _x0020_ from type names.
+       * SoapProtocolImporter.cs: Fixed case of generated methods to match
+         MS behavior.
+       
 2004-06-01  Gert Driesen <drieseng@users.sourceforge.net>
 
        * Binding.cs: removed extra XmlIgnore attribute on ServiceDescription
index fdbcdd5f4e16ef6d59287d69814714d8ccce67f0..b6728eee6857e93f5692c7bf7acb29ffcbb39364 100644 (file)
@@ -166,8 +166,8 @@ namespace System.Web.Services.Description
                        string messageName = memberIds.AddUnique(CodeIdentifier.MakeValid(Operation.Name),method);
 
                        method.Name = Operation.Name;
-                       methodBegin.Name = memberIds.AddUnique(CodeIdentifier.MakeValid("Begin" + memberIds.MakeRightCase(Operation.Name)),method);
-                       methodEnd.Name = memberIds.AddUnique(CodeIdentifier.MakeValid("End" + memberIds.MakeRightCase(Operation.Name)),method);
+                       methodBegin.Name = memberIds.AddUnique(CodeIdentifier.MakeValid("Begin" + Operation.Name),method);
+                       methodEnd.Name = memberIds.AddUnique(CodeIdentifier.MakeValid("End" + Operation.Name),method);
 
                        method.ReturnType = new CodeTypeReference (typeof(void));
                        methodEnd.ReturnType = new CodeTypeReference (typeof(void));
@@ -178,7 +178,15 @@ namespace System.Web.Services.Description
 
                        for (int n=0; n<inputMembers.Count; n++)
                        {
-                               CodeParameterDeclarationExpression param = new CodeParameterDeclarationExpression (inputMembers[n].TypeFullName, inputMembers[n].MemberName);
+//                             CodeParameterDeclarationExpression param = new CodeParameterDeclarationExpression (inputMembers[n].TypeFullName, inputMembers[n].MemberName);
+
+                               // MS always use System.String for input parameters
+                               string ptype = inputMembers[n].TypeFullName;
+                               int i = ptype.IndexOf ('[');
+                               if (i == -1) i = ptype.Length;
+                               ptype = "System.String" + ptype.Substring (i);
+                               CodeParameterDeclarationExpression param = new CodeParameterDeclarationExpression (ptype, inputMembers[n].MemberName);
+                               
                                param.Direction = FieldDirection.In;
                                method.Parameters.Add (param);
                                methodBegin.Parameters.Add (param);
index 892bc1f42651730a740d7c32db44015cb90c7d83..d3264950556cd2c8e4a0394e90fcf6ef4b222f1f 100644 (file)
@@ -210,6 +210,7 @@ namespace System.Web.Services.Description {
                        else className = service.Name;
                        
                        className = classNames.AddUnique (CodeIdentifier.MakeValid (className), port);
+                       className = className.Replace ("_x0020_", "");  // MS.NET seems to do this
                        
                        try
                        {
index 833d32fffd1964079f8632edd1940f30df9db3b7..a8d93852fba17a0284f128b42c6429160fd339ef 100644 (file)
@@ -297,8 +297,8 @@ namespace System.Web.Services.Description {
 
                        method.Name = CodeIdentifier.MakeValid(Operation.Name);
                        if (method.Name == ClassName) method.Name += "1";
-                       methodBegin.Name = memberIds.AddUnique(CodeIdentifier.MakeValid("Begin" + memberIds.MakeRightCase(method.Name)),method);
-                       methodEnd.Name = memberIds.AddUnique(CodeIdentifier.MakeValid("End" + memberIds.MakeRightCase(method.Name)),method);
+                       methodBegin.Name = memberIds.AddUnique(CodeIdentifier.MakeValid("Begin" + method.Name),method);
+                       methodEnd.Name = memberIds.AddUnique(CodeIdentifier.MakeValid("End" + method.Name),method);
 
                        method.ReturnType = new CodeTypeReference (typeof(void));
                        methodEnd.ReturnType = new CodeTypeReference (typeof(void));