Skip to content

Commit

Permalink
Modified HtmlTagId and HtmlAttributeId extensions to be AOT compatible.
Browse files Browse the repository at this point in the history
  • Loading branch information
jstedfast committed Nov 29, 2024
1 parent a3ae171 commit ac5a988
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 6 deletions.
13 changes: 10 additions & 3 deletions HtmlKit/HtmlAttributeId.cs
Original file line number Diff line number Diff line change
Expand Up @@ -691,12 +691,19 @@ public static class HtmlAttributeIdExtensions

static HtmlAttributeIdExtensions ()
{
var values = (HtmlAttributeId[]) Enum.GetValues (typeof (HtmlAttributeId));
#if NET8_0_OR_GREATER
var values = Enum.GetValuesAsUnderlyingType<HtmlAttributeId> ();
#else
var values = Enum.GetValues (typeof (HtmlAttributeId));
#endif

IdMapping = new Dictionary<string, HtmlAttributeId> (values.Length - 1, OptimizedOrdinalIgnoreCaseComparer.Comparer);

for (int i = 1; i < values.Length; i++)
IdMapping.Add (values[i].ToAttributeName (), values[i]);
for (int i = 1; i < values.Length; i++) {
var value = (HtmlAttributeId) values.GetValue (i);

IdMapping.Add (value.ToAttributeName (), value);
}
}

/// <summary>
Expand Down
4 changes: 4 additions & 0 deletions HtmlKit/HtmlKit.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@
<DebugType>full</DebugType>
</PropertyGroup>

<PropertyGroup>
<IsAotCompatible Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net7.0'))">true</IsAotCompatible>
</PropertyGroup>

<ItemGroup Condition=" $(TargetFramework.StartsWith('net4')) Or $(TargetFramework.StartsWith('netstandard2.')) ">
<PackageReference Include="System.Buffers" Version="4.6.0" />
<PackageReference Include="System.Memory" Version="4.6.0" />
Expand Down
13 changes: 10 additions & 3 deletions HtmlKit/HtmlTagId.cs
Original file line number Diff line number Diff line change
Expand Up @@ -859,12 +859,19 @@ public static class HtmlTagIdExtensions

static HtmlTagIdExtensions ()
{
var values = (HtmlTagId[]) Enum.GetValues (typeof (HtmlTagId));
#if NET8_0_OR_GREATER
var values = Enum.GetValuesAsUnderlyingType<HtmlTagId> ();
#else
var values = Enum.GetValues (typeof (HtmlTagId));
#endif

IdMapping = new Dictionary<string, HtmlTagId> (values.Length - 1, OptimizedOrdinalIgnoreCaseComparer.Comparer);

for (int i = 1; i < values.Length; i++)
IdMapping.Add (values[i].ToHtmlTagName (), values[i]);
for (int i = 1; i < values.Length; i++) {
var value = (HtmlTagId) values.GetValue (i);

IdMapping.Add (value.ToHtmlTagName (), value);
}
}

/// <summary>
Expand Down

0 comments on commit ac5a988

Please sign in to comment.