public static void ClearMetadata()
 {
     lock (internalMetadataProviders) {
         internalMetadataProviders.Clear();
     }
     UpdateLocators();
     Providers.Clear();
     FilteringProviders.Clear();
 }
 static void AddMetadata(IEnumerable <Tuple <Type, Type> > newInfoList)
 {
     CheckMetadata(newInfoList);
     lock (internalMetadataProviders) {
         internalMetadataProviders.AddRange(newInfoList);
     }
     UpdateLocators();
     foreach (var info in newInfoList)
     {
         IAttributesProvider provider;
         Providers.TryRemove(info.Item1, out provider);
         FilteringProviders.TryRemove(info.Item1, out provider);
     }
 }