コード例 #1
0
 //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;
 }