コード例 #1
0
        private int ResolveAssemblyRef(IMetadataModule module, ref TypeRefRow typeRef)
        {
            AssemblyRefRow arr;
            string         ns, name;

            module.Metadata.Read(typeRef.TypeNameIdx, out name);
            module.Metadata.Read(typeRef.TypeNamespaceIdx, out ns);
            module.Metadata.Read(typeRef.ResolutionScopeIdx, out arr);
            IAssemblyLoader loader     = RuntimeBase.Instance.AssemblyLoader;
            IMetadataModule dependency = loader.Resolve(module.Metadata, arr);

            for (int i = GetModuleOffset(dependency).TypeOffset; i < _types.Length; i++)
            {
                RuntimeType type = _types[i];
                if (null != type && ns.Length == type.Namespace.Length && name.Length == type.Name.Length && name == type.Name && ns == type.Namespace)
                {
                    return(i);
                }
            }

            throw new TypeLoadException();
        }