예제 #1
0
 internal void Add(DmdModuleImpl module)
 {
     if (module == null)
     {
         throw new ArgumentNullException(nameof(module));
     }
     lock (LockObject) {
         Debug.Assert(!modules.Contains(module));
         modules.Add(module);
     }
 }
 DmdMetadataReader InitializeMetadataReader()
 {
     lock (lockObj) {
         var reader = __metadataReader_DONT_USE;
         if (reader != null)
         {
             return(reader);
         }
         if (module == null)
         {
             throw new InvalidOperationException();
         }
         reader                    = metadataReaderFactory(module, getMetadata());
         module                    = null;
         getMetadata               = null;
         metadataReaderFactory     = null;
         reader.TypesUpdated      += DmdMetadataReader_TypesUpdated;
         __metadataReader_DONT_USE = reader;
         return(reader);
     }
 }