Exemple #1
0
        public static IEnumerable <Document> GetDocuments(DebugReaderProvider drp)
        {
            var mr = drp.GetMetaDataReader();

            foreach (var dh in mr.Documents)
            {
                if (dh.IsNil)
                {
                    continue;
                }
                var d = mr.GetDocument(dh);
                if (d.Name.IsNil || d.Language.IsNil || d.HashAlgorithm.IsNil || d.Hash.IsNil)
                {
                    continue;
                }
                yield return(new Document
                {
                    Name = mr.GetString(d.Name),
                    Language = mr.GetGuid(d.Language),
                    HashAlgorithm = mr.GetGuid(d.HashAlgorithm),
                    Hash = mr.GetBlobBytes(d.Hash),
                    IsEmbedded = IsEmbedded(mr, dh)
                });
            }
        }
Exemple #2
0
        public static byte[] GetSourceLinkBytes(DebugReaderProvider drp)
        {
            var mr = drp.GetMetaDataReader();

            if (mr == null)
            {
                return(null);
            }
            var blobh = default(BlobHandle);

            foreach (var cdih in mr.GetCustomDebugInformation(EntityHandle.ModuleDefinition))
            {
                var cdi = mr.GetCustomDebugInformation(cdih);
                if (mr.GetGuid(cdi.Kind) == SourceLinkId)
                {
                    blobh = cdi.Value;
                }
            }
            if (blobh.IsNil)
            {
                return(Array.Empty <byte>());
            }
            return(mr.GetBlobBytes(blobh));
        }