Create a gist now

Instantly share code, notes, and snippets.

p/invoke and wrapper method for RoGetMetaDataFile
//note, this wrapper funtion returns the metadata file name and token
//it immediately releases the importer pointer
static Tuple<string, UInt32> ResolveTypeName(string typename)
string path;
object importer = null;
UInt32 token;
var hr = RoGetMetaDataFile(typename, IntPtr.Zero, out path, out importer, out token);
//TODO: check HR for error
return Tuple.Create(path, token);
static extern UInt32 RoGetMetaDataFile(
[MarshalAs(UnmanagedType.HString)] string name,
IntPtr metaDataDispenser,
[MarshalAs(UnmanagedType.HString)] out string metaDataFilePath,
[MarshalAs(UnmanagedType.Interface)] out object metaDataImport,
out UInt32 typeDefToken);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment