protected override IType ResolveDeclaringType(ITypeSignature typeSig, IModule context)
        {
            var key = new ResolveCacheKey()
            {
                Signature = typeSig,
                Context   = context,
            };

            ICodeNode node;

            if (!_resolveCache.TryGetValue(key, out node))
            {
                node = base.ResolveDeclaringType(typeSig, context);
                _resolveCache.Add(key, node);
            }

            return((IType)node);
        }
        protected override IAssembly ResolveAssembly(IAssemblySignature assemblySig, IModule context)
        {
            var key = new ResolveCacheKey()
            {
                Signature = assemblySig,
                Context   = context,
            };

            ICodeNode node;

            if (!_resolveCache.TryGetValue(key, out node))
            {
                node = base.ResolveAssembly(assemblySig, context);
                _resolveCache.Add(key, node);
            }

            return((IAssembly)node);
        }