internal void Add(Assembly assembly, KnownAssemblyEntry knownAssemblyEntry)
 {
     KnownAssemblyEntry current;
     if (_assemblies.TryGetValue(assembly, out current))
     {
         Debug.Assert(current.SeenWithEdmItemCollection != knownAssemblyEntry.SeenWithEdmItemCollection &&
             knownAssemblyEntry.SeenWithEdmItemCollection, "should only be updating if we haven't seen it with an edmItemCollection yet.");
         _assemblies[assembly] = knownAssemblyEntry;
     }
     else
     {
         _assemblies.Add(assembly, knownAssemblyEntry);
     }
 }
        internal bool TryGetKnownAssembly(Assembly assembly, object loaderCookie, EdmItemCollection itemCollection, out KnownAssemblyEntry entry)
        {
            if (!_assemblies.TryGetValue(assembly, out entry))
            {
                return false;
            }

            if (!entry.HaveSeenInCompatibleContext(loaderCookie, itemCollection))
            {
                return false;
            }

            return true;
        }
        internal void Add(Assembly assembly, KnownAssemblyEntry knownAssemblyEntry)
        {
            KnownAssemblyEntry current;

            if (_assemblies.TryGetValue(assembly, out current))
            {
                Debug.Assert(current.SeenWithEdmItemCollection != knownAssemblyEntry.SeenWithEdmItemCollection &&
                             knownAssemblyEntry.SeenWithEdmItemCollection, "should only be updating if we haven't seen it with an edmItemCollection yet.");
                _assemblies[assembly] = knownAssemblyEntry;
            }
            else
            {
                _assemblies.Add(assembly, knownAssemblyEntry);
            }
        }
        internal bool TryGetKnownAssembly(Assembly assembly, object loaderCookie, EdmItemCollection itemCollection, out KnownAssemblyEntry entry)
        {
            if (!_assemblies.TryGetValue(assembly, out entry))
            {
                return(false);
            }

            if (!entry.HaveSeenInCompatibleContext(loaderCookie, itemCollection))
            {
                return(false);
            }

            return(true);
        }