Sie sagen, dass der Quellcode die beste Dokumentation ist. In diesem Fall scheint es die einzige Dokumentation zu sein. Hier sind meine Ergebnisse von Spelunking durch die .NET-Quelle.
Die Liste der Metadatenprojektionen ist im Format codiert.
Dieser Header ist an verschiedenen Stellen enthalten, wo er in Datenstrukturen für die jeweilige Aufgabe umgewandelt wird. Der zugänglichste Ort für uns, den ich gefunden habe, ist in der WinMD metadata importer und seine adapter. Von der Quelle:
// This metadata importer is exposed publically via CoCreateInstance(CLSID_CorMetaDataDispenser...).
// when the target is a .winmd file. It applies a small number of on-the-fly
// conversions to make the .winmd file look like a regular .NET assembly.
Meine Meinung ist, dass Sie CoCreateInstance(CLSID_CorMetaDataDispenser...)
können eine IMetaDataDispenser
, rufen OpenScope() mit IID_IMetaDataImport
mit einer .winmd
-Datei zu erhalten, die Metadaten Importeur zu erstellen. Es wird dann Konvertierungen wie IMap
zu IDictionary
für Sie tun, wie Sie die Metadaten durchlesen. Ich spekuliere, aber ich bin mir ziemlich sicher, dass das Visual Studio beim Generieren von Typdefinitionen aus Metadaten- oder Schnittstellenimplementierungen tut.
Sie können auch den Header mit dem Makro-Iterator in Ihr eigenes C/C++ - Projekt einfügen und die darin enthaltenen Daten in die für Sie am besten geeignete Form umwandeln, z. Code daraus generieren.
Konnte keine Dokumentation darüber finden. Ich habe nur ein paar Videos über Kanal 9 gesehen, aber das ist wahrscheinlich kein tiefer Tauchgang genug für dich? Können Sie die Links senden, wenn Sie möchten? – ChristiaanV
@ChristiaanV - Links wäre sehr hilfreich, danke. Allerdings wäre eine vollständige und formelle Dokumentation in dieser Hinsicht mein Microsoft sehr hilfreich und ein Muss IMHO. – logicnp