Exemple #1
0
		// Constructor
		internal SUDSGenerator(Type[] types, SdlType sdlType, TextWriter output)
		{
			Util.Log("SUDSGenerator.SUDSGenerator 2");
            if (sdlType == SdlType.Sdl)
                sdlGenerator = new SdlGenerator(types, sdlType, output);
            else
                wsdlGenerator = new WsdlGenerator(types, sdlType, output);
            this.sdlType = sdlType;
		}
Exemple #2
0
		// Constructor
		internal SUDSGenerator(Type[] types, SdlType sdlType, TextWriter output, Assembly assembly, String url)
		{
			Util.Log("SUDSGenerator.SUDSGenerator 4 "+url);			
            if (sdlType == SdlType.Sdl)
                sdlGenerator = new SdlGenerator(types, sdlType, output, assembly, url);
            else
                wsdlGenerator = new WsdlGenerator(types, sdlType, output, assembly, url);
            this.sdlType =sdlType;
		}
 		internal SUDSGenerator(ServiceType[] serviceTypes, SdlType sdlType, TextWriter output)
		{ 
 			Util.Log("SUDSGenerator.SUDSGenerator 5 "); 
                wsdlGenerator = new WsdlGenerator(serviceTypes, sdlType, output);
                this.sdlType = sdlType; 
		}
 internal void AddParticle(WsdlGenerator.Particle particle)
 {
     this._particles.Add(particle);
 }
 internal RealSchemaType(System.Type type, WsdlGenerator.XMLNamespace xns, string serviceEndpoint, Hashtable typeToServiceEndpoint, bool bUnique, WsdlGenerator WsdlGenerator) : base(type)
 {
     this._type = type;
     this._serviceEndpoint = serviceEndpoint;
     this._typeToServiceEndpoint = typeToServiceEndpoint;
     this._bUnique = bUnique;
     this._WsdlGenerator = WsdlGenerator;
     this._bStruct = type.IsValueType;
     this._xns = xns;
     this._implIFaces = null;
     this._iFaces = null;
     this._methods = null;
     this._fields = null;
     this._methodTypes = null;
     this._nestedTypes = type.GetNestedTypes();
     if (this._nestedTypes != null)
     {
         foreach (System.Type type2 in this._nestedTypes)
         {
             this._WsdlGenerator.AddType(type2, xns);
         }
     }
 }
 internal static string TypeName(System.Type type, bool bEmbedded, WsdlGenerator.XMLNamespace thisxns)
 {
     string str = null;
     if (type.IsArray)
     {
         return ProcessArray(type, thisxns);
     }
     string str2 = WsdlGenerator.RefName(type);
     System.Type elementType = type;
     if (type.IsByRef)
     {
         elementType = type.GetElementType();
         str2 = WsdlGenerator.RefName(elementType);
         if (elementType.IsArray)
         {
             return ProcessArray(elementType, thisxns);
         }
     }
     str = SudsConverter.MapClrTypeToXsdType(elementType);
     if (str != null)
     {
         return str;
     }
     string ns = type.Namespace;
     Assembly assem = type.Module.Assembly;
     WsdlGenerator.XMLNamespace xns = null;
     xns = (WsdlGenerator.XMLNamespace) thisxns.Generator._typeToInteropNS[type];
     if (xns == null)
     {
         xns = thisxns.LookupSchemaNamespace(ns, assem);
         if (xns == null)
         {
             xns = thisxns.Generator.LookupNamespace(ns, assem);
             if (xns == null)
             {
                 xns = thisxns.Generator.AddNamespace(ns, assem);
             }
             thisxns.DependsOnSchemaNS(xns, false);
         }
     }
     StringBuilder builder = new StringBuilder(0x100);
     builder.Append(xns.Prefix);
     builder.Append(':');
     builder.Append(str2);
     return builder.ToString();
 }
 internal void DependsOnSUDSNS(WsdlGenerator.XMLNamespace xns)
 {
     if (this.LookupSUDSNamespace(xns.Name, xns.Assem) == null)
     {
         this._dependsOnSUDSNS.Add(xns);
     }
 }
Exemple #8
0
		// Constructor
		internal SUDSGenerator(Type[] types, TextWriter output)
		{
			Util.Log("SUDSGenerator.SUDSGenerator 1");
            wsdlGenerator = new WsdlGenerator(types, output);
            sdlType = SdlType.Wsdl;
		}
 internal void AddArray(WsdlGenerator.SchemaAttribute attribute)
 {
     this._rtype = RestrictionType.Array;
     this._attribute = attribute;
 }
 internal void AddPhonySchemaType(WsdlGenerator.PhonySchemaType phType)
 {
     WsdlGenerator.PhonySchemaType phonySchemaType = this.LookupPhonySchemaType(phType.Name);
     if (phonySchemaType != null)
     {
         phType.ElementName = phType.Name + phonySchemaType.OverloadedType();
     }
     this._phonySchemaTypes.Add(phType);
 }
 internal void AddRealSchemaType(WsdlGenerator.RealSchemaType rsType)
 {
     this._realSchemaTypes.Add(rsType);
     if (rsType.IsUnique)
     {
         this._bUnique = true;
     }
 }
 internal XMLNamespace(string name, Assembly assem, string serviceEndpoint, Hashtable typeToServiceEndpoint, string prefix, bool bInteropType, WsdlGenerator generator)
 {
     this._name = name;
     this._assem = assem;
     this._bUnique = false;
     this._bInteropType = bInteropType;
     this._generator = generator;
     StringBuilder builder = new StringBuilder(0x100);
     Assembly assembly = typeof(string).Module.Assembly;
     if (!this._bInteropType)
     {
         if (assem == assembly)
         {
             builder.Append(SoapServices.CodeXmlNamespaceForClrTypeNamespace(name, null));
         }
         else if (assem != null)
         {
             builder.Append(SoapServices.CodeXmlNamespaceForClrTypeNamespace(name, assem.FullName));
         }
     }
     else
     {
         builder.Append(name);
     }
     this._namespace = builder.ToString();
     this._prefix = prefix;
     this._dependsOnSchemaNS = new ArrayList();
     this._realSUDSTypes = new ArrayList();
     this._dependsOnSUDSNS = new ArrayList();
     this._realSchemaTypes = new ArrayList();
     this._phonySchemaTypes = new ArrayList();
     this._simpleSchemaTypes = new ArrayList();
     this._arraySchemaTypes = new ArrayList();
     this._xnsImports = new ArrayList();
     this._serviceEndpoint = serviceEndpoint;
     this._typeToServiceEndpoint = typeToServiceEndpoint;
 }
 internal void AddArraySchemaType(WsdlGenerator.ArraySchemaType asType)
 {
     this._arraySchemaTypes.Add(asType);
 }
 internal static WsdlGenerator.SimpleSchemaType GetSimpleSchemaType(System.Type type, WsdlGenerator.XMLNamespace xns, bool fInline)
 {
     WsdlGenerator.SimpleSchemaType type2 = null;
     if (type.IsEnum)
     {
         type2 = new WsdlGenerator.SimpleSchemaType(type, xns);
         string baseName = WsdlGenerator.RealSchemaType.TypeName(Enum.GetUnderlyingType(type), true, xns);
         type2._restriction = new WsdlGenerator.Restriction(baseName, xns);
         string[] names = Enum.GetNames(type);
         for (int i = 0; i < names.Length; i++)
         {
             type2._restriction._abstractElms.Add(new WsdlGenerator.EnumElement(names[i]));
         }
         type2._restriction._rtype = WsdlGenerator.Restriction.RestrictionType.Enum;
     }
     return type2;
 }
 private SimpleSchemaType(System.Type type, WsdlGenerator.XMLNamespace xns)
 {
     this._type = type;
     this._xns = xns;
     this._abstractElms = new ArrayList();
     this._fullRefName = WsdlGenerator.RefName(type);
 }
 internal SchemaElement(string name, Type type, bool bEmbedded, WsdlGenerator.XMLNamespace xns)
 {
     this._name = name;
     this._typeString = null;
     this._schemaType = WsdlGenerator.SimpleSchemaType.GetSimpleSchemaType(type, xns, true);
     this._typeString = WsdlGenerator.RealSchemaType.TypeName(type, bEmbedded, xns);
 }
 internal SUDSGenerator(ServiceType[] serviceTypes, SdlType sdlType, TextWriter output)
 {
     this.wsdlGenerator = new WsdlGenerator(serviceTypes, sdlType, output);
     this.sdlType = sdlType;
 }
Exemple #18
0
		// Constructor
		internal SUDSGenerator(Type[] types, TextWriter output, Assembly assembly, String url)
		{
			Util.Log("SUDSGenerator.SUDSGenerator 3 "+url);
            wsdlGenerator = new WsdlGenerator(types, output, assembly, url);
            sdlType = SdlType.Wsdl;
		}
 internal SUDSGenerator(Type[] types, SdlType sdlType, TextWriter output)
 {
     this.wsdlGenerator = new WsdlGenerator(types, sdlType, output);
     this.sdlType = sdlType;
 }
            internal RealSchemaType(Type type, XMLNamespace xns, String serviceEndpoint, Hashtable typeToServiceEndpoint, bool bUnique, WsdlGenerator WsdlGenerator)
            : base(type)
            {
                Util.Log("RealSchemaType.RealSchemaType "+type+" xns "+xns.Name+" serviceEndpoint "+serviceEndpoint+" bUnique "+bUnique);               
                _type = type;
                _serviceEndpoint = serviceEndpoint;
                _typeToServiceEndpoint = typeToServiceEndpoint;
                _bUnique = bUnique;
                _WsdlGenerator = WsdlGenerator;
                _bStruct = type.IsValueType;
                _xns = xns;
                _implIFaces = null;
                _iFaces = null;
                _methods = null;
                _fields = null;
                _methodTypes = null;

                _nestedTypes = type.GetNestedTypes();
                if (_nestedTypes != null)
                {
                    foreach (Type ntype in _nestedTypes)
                    {
                        Util.Log("RealSchemaType.RealSchemaType nested classes"+ntype);
                        _WsdlGenerator.AddType(ntype, xns);
                    }
                }
            }
 internal void AddRealSUDSType(WsdlGenerator.RealSchemaType rsType)
 {
     this._realSUDSTypes.Add(rsType);
 }
 internal Restriction(string baseName, WsdlGenerator.XMLNamespace baseNS)
 {
     this._abstractElms = new ArrayList();
     this._baseName = baseName;
     this._baseNS = baseNS;
 }
 internal void AddSimpleSchemaType(WsdlGenerator.SimpleSchemaType ssType)
 {
     this._simpleSchemaTypes.Add(ssType);
 }
 internal void DependsOnSchemaNS(WsdlGenerator.XMLNamespace xns, bool bImport)
 {
     if (this.LookupSchemaNamespace(xns.Name, xns.Assem) == null)
     {
         this._dependsOnSchemaNS.Add(xns);
         if (bImport && (this.Namespace != xns.Namespace))
         {
             this._xnsImports.Add(xns);
         }
     }
 }
            internal XMLNamespace(String name, Assembly assem, String serviceEndpoint, Hashtable typeToServiceEndpoint, String prefix, bool bInteropType, WsdlGenerator generator ){
                Util.Log("XMLNamespace.XMLNamespace Enter "+name+" serviceEndpoint "+serviceEndpoint+" prefix "+prefix+" bInteropType "+bInteropType);
                _name = name;
                _assem = assem;
                _bUnique = false;
                _bInteropType = bInteropType;
                _generator = generator;
                StringBuilder sb = new StringBuilder(256);
                Assembly systemAssembly = typeof(String).Module.Assembly;

                // Remove leading . for an empty namespace

                if (!_bInteropType)
                {
                    if (assem == systemAssembly)
                    {
                        sb.Append(SoapServices.CodeXmlNamespaceForClrTypeNamespace(name, null));
                    }
                    else if (assem != null)
                    {
                        sb.Append(SoapServices.CodeXmlNamespaceForClrTypeNamespace(name, assem.FullName));
                    }
                }
                else
                {
                    sb.Append(name);
                }
                _namespace = sb.ToString();
                _prefix = prefix;
                _dependsOnSchemaNS = new ArrayList();
                _realSUDSTypes = new ArrayList();
                _dependsOnSUDSNS = new ArrayList();
                _realSchemaTypes = new ArrayList();
                _phonySchemaTypes = new ArrayList();
                _simpleSchemaTypes = new ArrayList();
                _arraySchemaTypes = new ArrayList();
                _xnsImports = new ArrayList();
                _serviceEndpoint = serviceEndpoint;
                _typeToServiceEndpoint = typeToServiceEndpoint;
                Util.Log("XMLNamespace.XMLNamespace exit "+_namespace);
            }
 private static string ProcessArray(System.Type type, WsdlGenerator.XMLNamespace xns)
 {
     string wireQname = null;
     bool flag = false;
     System.Type elementType = type.GetElementType();
     string str2 = "ArrayOf";
     while (elementType.IsArray)
     {
         str2 = str2 + "ArrayOf";
         elementType = elementType.GetElementType();
     }
     wireQname = TypeName(elementType, true, xns);
     int index = wireQname.IndexOf(":");
     wireQname.Substring(0, index);
     string str3 = wireQname.Substring(index + 1);
     int arrayRank = type.GetArrayRank();
     string str4 = "";
     if (arrayRank > 1)
     {
         str4 = arrayRank.ToString(CultureInfo.InvariantCulture);
     }
     string name = (str2 + str3.Substring(0, 1).ToUpper(CultureInfo.InvariantCulture) + str3.Substring(1) + str4).Replace('+', 'N');
     if (xns.LookupArraySchemaType(name) == null)
     {
         WsdlGenerator.ArraySchemaType asType = new WsdlGenerator.ArraySchemaType(type, name, SchemaBlockType.ComplexContent, false);
         WsdlGenerator.Restriction particle = new WsdlGenerator.Restriction();
         WsdlGenerator.SchemaAttribute attribute = new WsdlGenerator.SchemaAttribute();
         if (flag)
         {
             attribute.AddArray(wireQname);
         }
         else
         {
             string str6 = type.Name;
             index = str6.IndexOf("[");
             attribute.AddArray(wireQname + str6.Substring(index));
         }
         particle.AddArray(attribute);
         asType.AddParticle(particle);
         xns.AddArraySchemaType(asType);
     }
     return (xns.Prefix + ":" + name);
 }