public static bool DecodeXmlNamespaceForClrTypeNamespace(string inNamespace, out string typeNamespace, out string assemblyName) { if (SoapServices.IsNameNull(inNamespace)) { throw new ArgumentNullException("inNamespace"); } assemblyName = null; typeNamespace = ""; if (inNamespace.StartsWith(SoapServices.assemblyNS, StringComparison.Ordinal)) { assemblyName = SoapServices.UriDecode(inNamespace.Substring(SoapServices.assemblyNS.Length)); } else if (inNamespace.StartsWith(SoapServices.namespaceNS, StringComparison.Ordinal)) { typeNamespace = inNamespace.Substring(SoapServices.namespaceNS.Length); } else { if (!inNamespace.StartsWith(SoapServices.fullNS, StringComparison.Ordinal)) { return(false); } int num = inNamespace.IndexOf("/", SoapServices.fullNS.Length); typeNamespace = inNamespace.Substring(SoapServices.fullNS.Length, num - SoapServices.fullNS.Length); assemblyName = SoapServices.UriDecode(inNamespace.Substring(num + 1)); } return(true); }
public static string CodeXmlNamespaceForClrTypeNamespace(string typeNamespace, string assemblyName) { StringBuilder stringBuilder = new StringBuilder(256); if (SoapServices.IsNameNull(typeNamespace)) { if (SoapServices.IsNameNull(assemblyName)) { throw new ArgumentNullException("typeNamespace,assemblyName"); } stringBuilder.Append(SoapServices.assemblyNS); SoapServices.UriEncode(assemblyName, stringBuilder); } else if (SoapServices.IsNameNull(assemblyName)) { stringBuilder.Append(SoapServices.namespaceNS); stringBuilder.Append(typeNamespace); } else { stringBuilder.Append(SoapServices.fullNS); if (typeNamespace[0] == '.') { stringBuilder.Append(typeNamespace.Substring(1)); } else { stringBuilder.Append(typeNamespace); } stringBuilder.Append('/'); SoapServices.UriEncode(assemblyName, stringBuilder); } return(stringBuilder.ToString()); }