Пример #1
0
        void CreateCachedCast(string cast)
        {
            CachedCast cachedCast = new CachedCast(cast);

            for (int i = 0; i < castInfo.Length; i++)
            {
                if (castInfo[i].name.Equals(cast, StringComparison.OrdinalIgnoreCase))
                {
                    cachedCast.nameMatches.Add(castInfo[i]);
                }
            }

            if (cachedCast.nameMatches.Count == 0)
            {
                for (int i = 0; i < castInfo.Length; i++)
                {
                    if (castInfo[i].fullName.Equals(cast, StringComparison.OrdinalIgnoreCase))
                    {
                        cachedCast.nameMatches.Add(castInfo[i]);
                        break;
                    }
                }
            }
            cachedCasts.Add(cast, cachedCast);
        }
Пример #2
0
        static void CreateCachedCast(string castType)
        {
            CachedCast cachedCast = new CachedCast(castType);

            for (int i = 0; i < castInfo.Length; i++)
            {
                if (castInfo[i].name.Equals(castType, StringComparison.OrdinalIgnoreCase))
                {
                    cachedCast.nameMatches.Add(castInfo[i]);
                }
            }

            //If no name matches, resort to fullname matches
            //TODO both fors are the same...
            if (cachedCast.nameMatches.Count == 0)
            {
                for (int i = 0; i < castInfo.Length; i++)
                {
                    if (castInfo[i].fullName.Equals(castType, StringComparison.OrdinalIgnoreCase))
                    {
                        cachedCast.nameMatches.Add(castInfo[i]);
                    }
                }
            }
            cachedCasts.Add(castType, cachedCast);
        }
Пример #3
0
        Type GetCastType(string cast)
        {
            CachedCast cachedCast = cachedCasts[cast];

            if (cachedCast.nameMatches.Count == 0)
            {
                throw new ExplicitCastNotFoundException(cast);
            }
            if (cachedCast.nameMatches.Count > 1)
            {
                throw new AmbiguousExplicitCastException(cast, cachedCast.nameMatches.ConvertAll(x => x.type).ToArray());
            }
            return(cachedCast.nameMatches[0].type);
        }