From 436a600db7eb73b3f4c947bf7b93062ca7799ca4 Mon Sep 17 00:00:00 2001 From: Olivier Nizet Date: Fri, 10 Jan 2025 21:53:32 +0100 Subject: [PATCH] Use benefits of FrozenDictionary only for net8, no cumbersome net462 with an additional package --- .../Numbering/NumberingExpressionBase.cs | 6 +++++ src/Html2OpenXml/HtmlToOpenXml.csproj | 5 ---- src/Html2OpenXml/IO/ImageHeader.cs | 26 +++++++------------ .../Primitives/HtmlColor.Named.cs | 6 +++++ 4 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/Html2OpenXml/Expressions/Numbering/NumberingExpressionBase.cs b/src/Html2OpenXml/Expressions/Numbering/NumberingExpressionBase.cs index 1b83ad2..059c3e5 100644 --- a/src/Html2OpenXml/Expressions/Numbering/NumberingExpressionBase.cs +++ b/src/Html2OpenXml/Expressions/Numbering/NumberingExpressionBase.cs @@ -9,7 +9,9 @@ * IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A * PARTICULAR PURPOSE. */ +#if NET5_0_OR_GREATER using System.Collections.Frozen; +#endif using System.Collections.Generic; using System.Linq; using AngleSharp.Html.Dom; @@ -293,6 +295,10 @@ private static IReadOnlyDictionary InitKnownLists() knownAbstractNums.Add(listName, abstractNum); } +#if NET5_0_OR_GREATER return knownAbstractNums.ToFrozenDictionary(); +#else + return knownAbstractNums; +#endif } } \ No newline at end of file diff --git a/src/Html2OpenXml/HtmlToOpenXml.csproj b/src/Html2OpenXml/HtmlToOpenXml.csproj index 4e8b481..ba846a9 100644 --- a/src/Html2OpenXml/HtmlToOpenXml.csproj +++ b/src/Html2OpenXml/HtmlToOpenXml.csproj @@ -37,11 +37,6 @@ - - - - - diff --git a/src/Html2OpenXml/IO/ImageHeader.cs b/src/Html2OpenXml/IO/ImageHeader.cs index 300b10d..c65a0b7 100755 --- a/src/Html2OpenXml/IO/ImageHeader.cs +++ b/src/Html2OpenXml/IO/ImageHeader.cs @@ -14,7 +14,6 @@ * EMF Specifications: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-emf/ae7e7437-cfe5-485e-84ea-c74b51b000be */ using System; -using System.Collections.Frozen; using System.Collections.Generic; using System.IO; using System.Linq; @@ -36,22 +35,17 @@ public enum FileType { Unrecognized, Bitmap, Gif, Png, Jpeg, Emf, Xml } private static readonly byte[] pngSignatureBytes = [0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A]; - private static readonly IReadOnlyDictionary imageFormatDecoders = InitKnownFormatDecoders(); - - private static IReadOnlyDictionary InitKnownFormatDecoders() + private static readonly Dictionary imageFormatDecoders = new() { - var decoders = new Dictionary() { - { new byte[] { 0x42, 0x4D }, FileType.Bitmap }, - { Encoding.UTF8.GetBytes("GIF87a"), FileType.Gif }, - { Encoding.UTF8.GetBytes("GIF89a"), FileType.Gif }, // animated gif - { pngSignatureBytes, FileType.Png }, - { new byte[] { 0xff, 0xd8 }, FileType.Jpeg }, - { new byte[] { 0x1, 0, 0, 0 }, FileType.Emf }, - { Encoding.UTF8.GetBytes(" x.Length).First().Length; diff --git a/src/Html2OpenXml/Primitives/HtmlColor.Named.cs b/src/Html2OpenXml/Primitives/HtmlColor.Named.cs index c9a786c..2fbec91 100755 --- a/src/Html2OpenXml/Primitives/HtmlColor.Named.cs +++ b/src/Html2OpenXml/Primitives/HtmlColor.Named.cs @@ -1,5 +1,7 @@ using System; +#if NET5_0_OR_GREATER using System.Collections.Frozen; +#endif using System.Collections.Generic; namespace HtmlToOpenXml; @@ -169,6 +171,10 @@ private static IReadOnlyDictionary InitKnownColors() { "transparent", FromArgb(0, 0, 0, 0) } }; +#if NET5_0_OR_GREATER return colors.ToFrozenDictionary(); +#else + return colors; +#endif } } \ No newline at end of file