2006-12-12 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.Web.Services / System.Web.Services.Description / ProtocolImporter.cs
index 43f4e405bd4a299b92ec11c87c1df71bbce234fc..c6420a15569c4bfa674bcd1f1980be4fd10932d2 100644 (file)
@@ -185,7 +185,7 @@ namespace System.Web.Services.Description {
                        get { return descriptionImporter.CodeGenerationOptions; }
                }
                
-               internal ICodeGenerator CodeGenerator {
+               internal CodeDomProvider CodeGenerator {
                        get { return descriptionImporter.CodeGenerator; }
                }
 
@@ -309,7 +309,11 @@ namespace System.Web.Services.Description {
                                {
                                        operationBinding = oper;
                                        operation = FindPortOperation ();
-                                       if (operation == null) throw new Exception ("Operation " + operationBinding.Name + " not found in portType " + PortType.Name);
+                                       if (operation == null)
+                                               throw new Exception ("Operation " + operationBinding.Name + " not found in portType " + PortType.Name);
+
+                                       inputMessage = null;
+                                       outputMessage = null;
 
                                        foreach (OperationMessage omsg in operation.Messages)
                                        {
@@ -541,7 +545,7 @@ namespace System.Web.Services.Description {
                        foreach (XmlSchemaObject ob in sc.Includes)
                        {
                                XmlSchemaImport import = ob as XmlSchemaImport;
-                               if (import.Namespace == SoapProtocolReflector.EncodingNamespace) return true;
+                               if (import != null && import.Namespace == SoapProtocolReflector.EncodingNamespace) return true;
                        }
                        return false;
                }