Exemplo n.º 1
0
        public IType DeepGetClass(SerializationCodeCompletionDatabase db, string typeName, IList <IReturnType> genericArguments, bool caseSensitive)
        {
            if (db == null)
            {
                return(null);
            }

            IType c = db.GetClass(typeName, genericArguments, caseSensitive);

            if (c != null)
            {
                return(c);
            }

            foreach (ReferenceEntry re in db.References)
            {
                SerializationCodeCompletionDatabase cdb = GetDatabase(re.Uri);
                if (cdb == null)
                {
                    continue;
                }
                // deep get class should only go to depth 1, to prevent type lookup errors in the form:
                // A -> B -> C v1.0 / A -> C v2.0 & getTypeName from assembly C. If C isn't referenced directly
                // it's impossible to get types from assembly A, therefore DeepGetClassRec is incorrect here.
                c = cdb.GetClass(typeName, genericArguments, caseSensitive);
//				c = DeepGetClassRec (visitedDbs, cdb, typeName, genericArguments, caseSensitive);
                if (c != null)
                {
                    return(c);
                }
            }
            return(null);
        }
Exemplo n.º 2
0
 IType GetClass(SerializationCodeCompletionDatabase db, string typeName, IList <IReturnType> genericArguments, bool caseSensitive)
 {
     if (db != null)
     {
         IType c = db.GetClass(typeName, genericArguments, caseSensitive);
         if (c != null)
         {
             return(c);
         }
         foreach (ReferenceEntry re in db.References)
         {
             SerializationCodeCompletionDatabase cdb = GetDatabase(re.Uri);
             if (cdb == null)
             {
                 continue;
             }
             c = cdb.GetClass(typeName, genericArguments, caseSensitive);
             if (c != null)
             {
                 return(c);
             }
         }
     }
     return(null);
 }
Exemplo n.º 3
0
		public IType DeepGetClass (SerializationCodeCompletionDatabase db, string typeName, IList<IReturnType> genericArguments, bool caseSensitive)
		{
			if (db == null) return null;
			
			IType c = db.GetClass (typeName, genericArguments, caseSensitive);
			if (c != null) return c;
			
			foreach (ReferenceEntry re in db.References)
			{
				SerializationCodeCompletionDatabase cdb = GetDatabase (re.Uri);
				if (cdb == null) continue;
				// deep get class should only go to depth 1, to prevent type lookup errors in the form:
				// A -> B -> C v1.0 / A -> C v2.0 & getTypeName from assembly C. If C isn't referenced directly
				// it's impossible to get types from assembly A, therefore DeepGetClassRec is incorrect here.
				c = cdb.GetClass (typeName, genericArguments, caseSensitive);
//				c = DeepGetClassRec (visitedDbs, cdb, typeName, genericArguments, caseSensitive);
				if (c != null) return c;
			}
			return null;
		}
Exemplo n.º 4
0
		IType GetClass (SerializationCodeCompletionDatabase db, string typeName, IList<IReturnType> genericArguments, bool caseSensitive)
		{
			if (db != null) {
				IType c = db.GetClass (typeName, genericArguments, caseSensitive);
				if (c != null) return c;
				foreach (ReferenceEntry re in db.References)
				{
					SerializationCodeCompletionDatabase cdb = GetDatabase (re.Uri);
					if (cdb == null) continue;
					c = cdb.GetClass (typeName, genericArguments, caseSensitive);
					if (c != null) return c;
				}
			}
			return null;
		}