protected ImportedMember(ImportedModule module, StringHandle nameHandle, ImportedType declaringType)
        {
            Module        = module;
            DeclaringType = declaringType;

            _nameHandle = nameHandle;
        }
        protected ImportedMember(ImportedModule module, StringHandle nameHandle, ImportedType declaringType)
        {
            Module = module;
            DeclaringType = declaringType;

            _nameHandle = nameHandle;
        }
        internal ImportedMethod ResolveMethod(MethodDefinitionHandle handle, ImportedType declaringType = null)
        {
            ImportedMethod method;

            if (!_resolvedMethods.TryGetValue(handle, out method))
            {
                MethodDefinition methodDef = _reader.GetMethodDefinition(handle);
                method = new ImportedMethod(this, methodDef, declaringType ?? ResolveType(methodDef.GetDeclaringType()));
                _resolvedMethods.Add(handle, method);
            }

            return(method);
        }
        internal ImportedType ResolveType(TypeDefinitionHandle handle)
        {
            ImportedType type;

            if (!_resolvedTypes.TryGetValue(handle, out type))
            {
                TypeDefinition typeDef = _reader.GetTypeDefinition(handle);
                type = new ImportedType(this, typeDef);
                _resolvedTypes.Add(handle, type);
            }

            return(type);
        }
 internal ImportedField(ImportedModule module, FieldDefinition fieldDef, ImportedType declaringType)
     : base(module, fieldDef.Name, declaringType)
 {
     _fieldDef = fieldDef;
 }
        internal ImportedType ResolveType(TypeDefinitionHandle handle)
        {
            ImportedType type;
            if (!_resolvedTypes.TryGetValue(handle, out type))
            {
                TypeDefinition typeDef = _reader.GetTypeDefinition(handle);
                type = new ImportedType(this, typeDef);
                _resolvedTypes.Add(handle, type);
            }

            return type;
        }
        internal ImportedMethod ResolveMethod(MethodDefinitionHandle handle, ImportedType declaringType = null)
        {
            ImportedMethod method;
            if (!_resolvedMethods.TryGetValue(handle, out method))
            {
                MethodDefinition methodDef = _reader.GetMethodDefinition(handle);
                method = new ImportedMethod(this, methodDef, declaringType ?? ResolveType(methodDef.GetDeclaringType()));
                _resolvedMethods.Add(handle, method);
            }

            return method;
        }
 internal ImportedMethod(ImportedModule module, MethodDefinition methodDef, ImportedType declaringType)
     : base(module, methodDef.Name, declaringType)
 {
     _methodDef = methodDef;
     _signature = methodDef.DecodeSignature(Module.IrisTypeProvider);
 }
 internal ImportedMethod(ImportedModule module, MethodDefinition methodDef, ImportedType declaringType)
     : base(module, methodDef.Name, declaringType)
 {
     _methodDef = methodDef;
     _signature = SignatureDecoder.DecodeMethodSignature(_methodDef.Signature, Module.IrisTypeProvider);
 }
 internal ImportedField(ImportedModule module, FieldDefinition fieldDef, ImportedType declaringType)
     : base(module, fieldDef.Name, declaringType)
 {
     _fieldDef = fieldDef;
 }