//public static NamespaceResolver createNSR(string fqn, string origVal, bool takeFirst = false) //{ // NamespaceResolver nsr = new NamespaceResolver(fqn); // if (takeFirst) // return nsr; // while (!nsr.IsValid) // { // if (nsr.Reference == null) // return null; // if(nsr.LayerCount > 1) // { // // } // if (nsr.Reference.Parent is Interfaces.iName) // nsr = new HelperClasses.NamespaceResolver(((Interfaces.iName)nsr.Reference.Parent).Name.FullyQualifiedName + "." + origVal); // else // return null; // } // return nsr; //} public static NamespaceResolver createNSR(string fqn, bool takeFirst = false) { NamespaceResolver nsr = new NamespaceResolver(fqn); if (takeFirst) return nsr; int index = fqn.LastIndexOf(':'); string prQN = index > 0 ? fqn.Substring(fqn.LastIndexOf(':') + 1) : fqn; Interfaces.iName lastRef = nsr.Reference is Interfaces.iName ? (Interfaces.iName)nsr.Reference : null; while(!nsr.IsValid) { if (nsr.Reference == null) return null; if (((pBaseLangObject)lastRef).Parent is Interfaces.iName) { lastRef = (Interfaces.iName)((pBaseLangObject)lastRef).Parent; nsr = new HelperClasses.NamespaceResolver(lastRef.Name.FullyQualifiedName + "." + prQN); } else { return null; } } return nsr; }