internal MetadataInfo(InternalMetadataInfo metadataInfo) { if (metadataInfo is null) { throw new ArgumentNullException(nameof(metadataInfo)); } IntPtr moduleHandle; moduleHandle = Marshal.GetHINSTANCE(metadataInfo.Module); if (!(metadataInfo.TableStream is null)) { _tableStream = new MetadataStreamInfo(metadataInfo.TableStream, moduleHandle); } if (!(metadataInfo.StringHeap is null)) { _stringHeap = new MetadataStreamInfo(metadataInfo.StringHeap, moduleHandle); } if (!(metadataInfo.UserStringHeap is null)) { _userStringHeap = new MetadataStreamInfo(metadataInfo.UserStringHeap, moduleHandle); } if (!(metadataInfo.GuidHeap is null)) { _guidHeap = new MetadataStreamInfo(metadataInfo.GuidHeap, moduleHandle); } if (!(metadataInfo.BlobHeap is null)) { _blobHeap = new MetadataStreamInfo(metadataInfo.BlobHeap, moduleHandle); } }
/// <summary> /// Get metadata info /// </summary> /// <param name="moduleHandle"></param> /// <returns></returns> public string GetMetadataInfo(IntPtr moduleHandle) { Module module; MetadataInfo metadataInfo; module = GetModuleFromNativeModuleHandle(moduleHandle); metadataInfo = new MetadataInfo(InternalMetadataInfo.GetMetadataInfo(module)); return(XmlSerializer.Serialize(metadataInfo)); }