internal void ResolveTypes(WsdlParser parser) { string ns = null; string assemName = null; if (this.IsArray()) { this.ResolveArray(); } else { if (this.IsSUDSType && (this._sudsType == System.Runtime.Remoting.MetadataServices.SUDSType.None)) { if (this._parser._bWrappedProxy) { this._sudsType = System.Runtime.Remoting.MetadataServices.SUDSType.ClientProxy; } else { this._sudsType = System.Runtime.Remoting.MetadataServices.SUDSType.MarshalByRef; } } if (this._baseTypeName != null) { if ((parser.IsURTExportedType(this._baseTypeXmlNS, out ns, out assemName) == UrtType.UrtSystem) || ns.StartsWith("System", StringComparison.Ordinal)) { this._baseType = new WsdlParser.SystemType(this._baseTypeName, this._baseTypeXmlNS, ns, assemName); } else { WsdlParser.URTNamespace namespace2 = parser.LookupNamespace(this._baseTypeXmlNS); if (namespace2 == null) { throw new SUDSParserException(string.Format(CultureInfo.CurrentCulture, CoreChannel.GetResourceString("Remoting_Suds_CantResolveSchemaNS"), new object[] { this._baseTypeXmlNS, this._baseTypeName })); } this._baseType = namespace2.LookupComplexType(this._baseTypeName); if (this._baseType == null) { this._baseType = new WsdlParser.SystemType(this._baseTypeName, this._baseTypeXmlNS, ns, assemName); } } } if (this.IsSUDSType) { if (this._parser._bWrappedProxy) { if ((this._baseTypeName == null) || (this._baseType is WsdlParser.SystemType)) { this._baseTypeName = "RemotingClientProxy"; this._baseTypeXmlNS = SoapServices.CodeXmlNamespaceForClrTypeNamespace("System.Runtime.Remoting", "System.Runtime.Remoting"); ns = "System.Runtime.Remoting.Services"; assemName = "System.Runtime.Remoting"; this._baseType = new WsdlParser.SystemType(this._baseTypeName, this._baseTypeXmlNS, ns, assemName); } } else if (this._baseTypeName == null) { this._baseTypeName = "MarshalByRefObject"; this._baseTypeXmlNS = SoapServices.CodeXmlNamespaceForClrTypeNamespace("System", null); ns = "System"; assemName = null; this._baseType = new WsdlParser.SystemType(this._baseTypeName, this._baseTypeXmlNS, ns, assemName); } } else if (this._baseType == null) { this._baseType = new WsdlParser.SystemType("Object", SoapServices.CodeXmlNamespaceForClrTypeNamespace("System", null), "System", null); } for (int i = 0; i < this._implIFaceNames.Count; i += 2) { string str5; string str6; WsdlParser.BaseInterface interface2; string name = (string) this._implIFaceNames[i]; string str4 = (string) this._implIFaceNames[i + 1]; if (parser.IsURTExportedType(str4, out str5, out str6) == UrtType.UrtSystem) { interface2 = new WsdlParser.SystemInterface(name, str4, str5, parser, str6); } else { WsdlParser.URTNamespace namespace3 = parser.LookupNamespace(str4); if (namespace3 == null) { throw new SUDSParserException(string.Format(CultureInfo.CurrentCulture, CoreChannel.GetResourceString("Remoting_Suds_CantResolveSchemaNS"), new object[] { str4, name })); } interface2 = namespace3.LookupInterface(name); if (interface2 == null) { throw new SUDSParserException(string.Format(CultureInfo.CurrentCulture, CoreChannel.GetResourceString("Remoting_Suds_CantResolveTypeInNS"), new object[] { name, str4 })); } } this._implIFaces.Add(interface2); } for (int j = 0; j < this._methods.Count; j++) { ((WsdlParser.URTMethod) this._methods[j]).ResolveTypes(parser); } } }
internal URTSimpleType(string name, string urlNS, string ns, string encodedNS, bool bAnonymous, WsdlParser parser) : base(name, urlNS, ns, encodedNS) { this._baseTypeName = null; this._baseTypeXmlNS = null; this._baseType = null; this._fieldString = null; this._facets = new ArrayList(); this._bEnum = false; this._bAnonymous = bAnonymous; this._encoding = null; this._parser = parser; }
internal URTComplexType(string name, string urlNS, string ns, string encodedNS, SchemaBlockType blockDefault, bool bSUDSType, bool bAnonymous, WsdlParser parser, WsdlParser.URTNamespace xns) : base(name, urlNS, ns, encodedNS) { this._bprint = true; this._baseTypeName = null; this._baseTypeXmlNS = null; this._baseType = null; this._connectURLs = null; this._bStruct = !bSUDSType; this._blockType = blockDefault; this._bSUDSType = bSUDSType; this._bAnonymous = bAnonymous; this._fieldString = null; this._fields = new ArrayList(); this._methods = new ArrayList(); this._implIFaces = new ArrayList(); this._implIFaceNames = new ArrayList(); this._sudsType = System.Runtime.Remoting.MetadataServices.SUDSType.None; this._parser = parser; int index = name.IndexOf('+'); if (index > 0) { string typeName = parser.Atomize(name.Substring(0, index)); if (xns.LookupComplexType(typeName) == null) { WsdlParser.URTComplexType type = new WsdlParser.URTComplexType(typeName, urlNS, ns, encodedNS, blockDefault, bSUDSType, bAnonymous, parser, xns); xns.AddComplexType(type); } } if ((xns.UrtType == UrtType.Interop) && (name.LastIndexOf('.') > -1)) { this._wireType = name; base.Name = name.Replace(".", "_"); base.SearchName = name; } }