Ejemplo n.º 1
0
        public static ISymbolReader CreateReader(string filename, byte[] binaryFile)
        {
            SymBinder binder = new SymBinder();
            object    objDispenser, objImporter;

            CoCreateInstance(ref s_dispenserClassID, null, 1, ref s_dispenserIID, out objDispenser);

            IntPtr filePtr = Marshal.AllocHGlobal(binaryFile.Length);

            Marshal.Copy(binaryFile, 0, filePtr, binaryFile.Length);

            IMetaDataDispenserEx dispenser = (IMetaDataDispenserEx)objDispenser;

            dispenser.OpenScopeOnMemory(filePtr, (uint)binaryFile.Length, 0, ref s_importerIID, out objImporter);

            IntPtr        importerPtr = IntPtr.Zero;
            ISymbolReader reader;

            try
            {
                importerPtr = Marshal.GetComInterfaceForObject(objImporter, typeof(IMetadataImport));

                reader = binder.GetReader(importerPtr, filename, null);
            }
            finally
            {
                if (importerPtr != IntPtr.Zero)
                {
                    Marshal.Release(importerPtr);
                }
            }

            return(reader);
        }
Ejemplo n.º 2
0
        public MetadataImport(string assemblyPath)
        {
            m_assembly  = assemblyPath;
            m_dispenser = new MetaDataDispenserEx();
            object rawScope = null;

            Guid metaDataImportGuid = new Guid("7DAC8207-D3AE-4c75-9B67-92801A497D44");

            m_dispenser.OpenScope(assemblyPath, 0, ref metaDataImportGuid, out rawScope);
            m_import = (IMetaDataImport)rawScope;
        }
Ejemplo n.º 3
0
 public static void XXX()
 {
     IMetaDataDispenserEx o = new IMetaDataDispenserEx();
 }
Ejemplo n.º 4
0
        public MetadataImport(string assemblyPath)
        {
            m_dispenser = new MetaDataDispenserEx();
            object rawScope = null;

            Guid metaDataImportGuid = new Guid("7DAC8207-D3AE-4c75-9B67-92801A497D44");
            m_dispenser.OpenScope(assemblyPath, 0, ref metaDataImportGuid, out rawScope);
            m_import = (IMetaDataImport)rawScope;
        }
Ejemplo n.º 5
0
	public static void XXX ()
	{
		IMetaDataDispenserEx o = new IMetaDataDispenserEx();
	}