Exemple #1
0
        /// <summary>
        /// Gets access to metadata of running process.
        /// </summary>
        /// <param name="mod">Debugged module.</param>
        /// <param name="emitter">Emitter access to metadata.</param>
        /// <param name="importer">Importer access to metadata.</param>

        private void getInterfaces(ICorDebugModule2 mod)
        {
            Object objEmitter;
            Object objImporter;

            ((ICorDebugModule)mod).__GetMetaDataInterface(ref emitterIID, out objEmitter);
            ((ICorDebugModule)mod).__GetMetaDataInterface(ref importerIID, out objImporter);

            oldEmitter  = new MetaDataEmitter(createEmitterCopy((IMetaDataEmit)objEmitter));
            oldImporter = new MetaDataImporter((IMetaDataImport)objEmitter);
        }
Exemple #2
0
        /// <summary>
        /// Updates metadata for both old and new assembly
        /// </summary>

        public void Update()
        {
            if (!oldMetadataLoaded)
            {
                getInterfaces(manager.ResourceManager.CurrentModule.CorModule2);
                oldMetadataLoaded = true;
            }
            else
            {
                oldEmitter.CorMetaDataEmit.ResetENCLog();
                ClearTokenCache();
            }
            newImporter = new MetaDataImporter(createImporter(manager.ResourceManager.NewAssemblyPath));
        }
Exemple #3
0
        /// <summary>
        /// Gets access to metadata of running process.
        /// </summary>
        /// <param name="mod">Debugged module.</param>
        /// <param name="emitter">Emitter access to metadata.</param>
        /// <param name="importer">Importer access to metadata.</param>
        private void getInterfaces(ICorDebugModule2 mod)
        {
            Object objEmitter;
            Object objImporter;

            ((ICorDebugModule)mod).__GetMetaDataInterface(ref emitterIID, out objEmitter);
            ((ICorDebugModule)mod).__GetMetaDataInterface(ref importerIID, out objImporter);

            oldEmitter = new MetaDataEmitter(createEmitterCopy((IMetaDataEmit)objEmitter));
            oldImporter = new MetaDataImporter((IMetaDataImport)objEmitter);
        }
Exemple #4
0
 /// <summary>
 /// Updates metadata for both old and new assembly
 /// </summary>
 public void Update()
 {
     if(!oldMetadataLoaded){
         getInterfaces(manager.ResourceManager.CurrentModule.CorModule2);
         oldMetadataLoaded = true;
     } else {
         oldEmitter.CorMetaDataEmit.ResetENCLog();
         ClearTokenCache();
     }
     newImporter = new MetaDataImporter(createImporter(manager.ResourceManager.NewAssemblyPath));
 }