// 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; }
// 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); } }
// 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; }
// 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); }