示例#1
0
        TypeResolver getTypeResolver(TypeReference typeReference)
        {
            var key = typeReference.Namespace + "." + typeReference.Name;
            List <TypeResolver> list;

            if (!types.TryGetValue(key, out list))
            {
                return(null);
            }

            if (typeReference is TypeDefinition)
            {
                foreach (var resolver in list)
                {
                    if (resolver.type.MetadataToken == typeReference.MetadataToken.ToInt32())
                    {
                        return(resolver);
                    }
                }
            }

            foreach (var resolver in list)
            {
                if (ResolverUtils.compareTypes(resolver.type, typeReference))
                {
                    return(resolver);
                }
            }

            return(null);
        }
示例#2
0
        TypeResolver getTypeResolver(ITypeDefOrRef typeRef)
        {
            if (typeRef == null)
            {
                return(null);
            }
            var scopeType = typeRef.ScopeType;
            var key       = scopeType.Namespace + "." + scopeType.TypeName;
            List <TypeResolver> list;

            if (!types.TryGetValue(key, out list))
            {
                return(null);
            }

            if (scopeType is TypeDef)
            {
                foreach (var resolver in list)
                {
                    if (resolver.type.MetadataToken == scopeType.MDToken.Raw)
                    {
                        return(resolver);
                    }
                }
            }

            foreach (var resolver in list)
            {
                if (ResolverUtils.compareTypes(resolver.type, scopeType))
                {
                    return(resolver);
                }
            }

            return(null);
        }