Skip to content

Modernize#466

Merged
drewnoakes merged 8 commits intomainfrom
modernize
Apr 4, 2026
Merged

Modernize#466
drewnoakes merged 8 commits intomainfrom
modernize

Conversation

@drewnoakes
Copy link
Copy Markdown
Owner

Some general modernization of the project.

@drewnoakes drewnoakes requested a review from Copilot April 4, 2026 12:51
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

General modernization across the solution, primarily adopting file-scoped namespaces and centralizing NuGet package versions.

Changes:

  • Converted many C# files from block-scoped to file-scoped namespaces.
  • Introduced central package management via Directory.Packages.props and removed inline package versions from multiple .csproj/props.
  • Minor cleanup tweaks (e.g., null checks, stream lifetime handling in tool).

Reviewed changes

Copilot reviewed 300 out of 404 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
MetadataExtractor/Formats/Photoshop/Knot.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Photoshop/DuckyReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Photoshop/DuckyDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Pcx/PcxReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Pcx/PcxMetadataReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Pcx/PcxDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Pcx/PcxDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Netpbm/NetpbmReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Netpbm/NetpbmMetadataReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Netpbm/NetpbmHeaderDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Netpbm/NetpbmHeaderDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Mpeg/MpegAudioTypeChecker.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Mpeg/Mp3Reader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Mpeg/Mp3MetadataReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Mpeg/Mp3Directory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Mpeg/Mp3Descriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegSegmentWithPreambleMetadataReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegSegmentType.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegSegmentReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegSegment.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegProcessingException.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegMetadataReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegDnlReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegDnlDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegDnlDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegDhtReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegComponent.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegCommentReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegCommentDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/JpegCommentDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/IJpegSegmentMetadataReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/HuffmanTablesDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jpeg/HuffmanTablesDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jfxx/JfxxReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jfxx/JfxxDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jfxx/JfxxDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jfif/JfifReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jfif/JfifDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Jfif/JfifDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/TypeStringConverter.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/SingleItemTypeReferenceBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/PrimaryItemBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/PixelInformationBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/MetaBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/ItemReferenceBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/ItemPropertyContainerBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/ItemPropertyBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/ItemPropertyAssociationBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/ItemLocationBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/ItemInformationBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/ItemInfoEntryBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/ItemDataBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/ImageSpatialExtentsBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/ImageRotationBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/HandlerBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/FullBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/FileTypeBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/DecoderConfigurationBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/DataReferenceBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/DataInformationBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/DataEntryLocationBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Boxes/ColorInformationBox.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/BoxTypes.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/BoxReaderExtensions.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/BoxReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/BoxQuery.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/BoxLocation.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iso14496/Box.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iptc/Iso2022Converter.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iptc/IptcReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iptc/IptcDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Iptc/IptcDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Ico/IcoReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Ico/IcoMetadataReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Ico/IcoDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Ico/IcoDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Icc/IccReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Icc/IccDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Icc/IccDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Heif/HeifMetadataReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Heif/HeicThumbnailTagDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Heif/HeicThumbnailDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Heif/HeicImagePropertyDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Heif/HeicImagePropertiesDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Gif/GifReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Gif/GifMetadataReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Gif/GifImageDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Gif/GifImageDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Gif/GifHeaderDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Gif/GifHeaderDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Gif/GifControlDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Gif/GifControlDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Gif/GifCommentDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Gif/GifCommentDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Gif/GifAnimationDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Gif/GifAnimationDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/GeoTiff/GeoTiffDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/GeoTiff/GeoTiffDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Flir/FlirReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Flir/FlirRawDataDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Flir/FlirMainTagType.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Flir/FlirHeaderDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Flir/FlirCameraInfoDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Flir/FlirCameraInfoDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/FileType/FileTypeDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/FileType/FileTypeDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/FileSystem/FileMetadataReader.cs Convert to file-scoped namespace
MetadataExtractor/Formats/FileSystem/FileMetadataDirectory.cs Convert to file-scoped namespace
MetadataExtractor/Formats/FileSystem/FileMetadataDescriptor.cs Convert to file-scoped namespace
MetadataExtractor/Formats/Exif/makernotes/* Convert to file-scoped namespaces across many makernote types
MetadataExtractor/Formats/Exif/* Convert to file-scoped namespace (plus minor null-check cleanup in GPS)
MetadataExtractor/Formats/Eps/* Convert to file-scoped namespaces
MetadataExtractor/Formats/Bmp/* Convert to file-scoped namespaces
MetadataExtractor/Formats/Avi/* Convert to file-scoped namespaces
MetadataExtractor/Formats/Adobe/* Convert to file-scoped namespaces
MetadataExtractor/Face.cs Convert to file-scoped namespace
MetadataExtractor/DirectoryExtensions.cs Convert to file-scoped namespace
MetadataExtractor/Directory.cs Convert to file-scoped namespace
MetadataExtractor/Age.cs Convert to file-scoped namespace
MetadataExtractor.Tools.JpegSegmentExtractor/Program.cs Convert to file-scoped namespace
MetadataExtractor.Tools.FileProcessor/TextFileOutputHandler.cs Convert to file-scoped namespace
MetadataExtractor.Tools.FileProcessor/Program.cs Convert to file-scoped namespace + adjust stream lifetime handling
MetadataExtractor.Tools.FileProcessor/MarkdownTableOutputHandler.cs Convert to file-scoped namespace
MetadataExtractor.Tools.FileProcessor/IFileHandler.cs Convert to file-scoped namespace
MetadataExtractor.Tools.FileProcessor/FileHandlerBase.cs Convert to file-scoped namespace
MetadataExtractor.Tools.FileProcessor/BasicFileHandler.cs Convert to file-scoped namespace
MetadataExtractor.Tests/* Convert tests to file-scoped namespaces
MetadataExtractor.Tests/MetadataExtractor.Tests.csproj Remove inline package versions (central package mgmt)
MetadataExtractor.Samples/MetadataExtractor.Samples.csproj Remove inline package versions (central package mgmt)
MetadataExtractor.PowerShell/ShowJpegStructure.cs Convert to file-scoped namespace
MetadataExtractor.PowerShell/MetadataExtractor.PowerShell.csproj Remove inline package versions (central package mgmt)
MetadataExtractor.PowerShell/ExtractMetadataCmdlet.cs Convert to file-scoped namespace
MetadataExtractor.Benchmarks/Program.cs Convert to file-scoped namespace
MetadataExtractor.Benchmarks/MetadataExtractor.Benchmarks.csproj Remove inline package versions (central package mgmt)
Directory.Packages.props Add central package version definitions
Directory.Build.props Switch analyzer/SourceLink refs to central package versions
Annotations.cs Convert to file-scoped namespace (within NETSTANDARD2_0 guard)
.git-blame-ignore-revs Add ignore-revs entry for mass namespace conversion
.editorconfig Enforce file-scoped namespaces

Comment thread MetadataExtractor/Formats/Netpbm/NetpbmMetadataReader.cs Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants