Skip to content

Smdn.Fundamental.PrintableEncoding.PercentEncoding version 3.0.5

Compare
Choose a tag to compare
@smdn smdn released this 12 May 11:28
· 315 commits to main since this release
914ac52

Released package

Release notes

The full release notes are available at gist.

Change log

Change log in this release:

API changes

API changes in this release:
diff --git a/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-net45.apilist.cs b/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-net45.apilist.cs
index 39a0f3e4..ffe44cdc 100644
--- a/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-net45.apilist.cs
+++ b/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-net45.apilist.cs
@@ -1,84 +1,84 @@
-// Smdn.Fundamental.PrintableEncoding.PercentEncoding.dll (Smdn.Fundamental.PrintableEncoding.PercentEncoding-3.0.4)
+// Smdn.Fundamental.PrintableEncoding.PercentEncoding.dll (Smdn.Fundamental.PrintableEncoding.PercentEncoding-3.0.5)
 //   Name: Smdn.Fundamental.PrintableEncoding.PercentEncoding
-//   AssemblyVersion: 3.0.4.0
-//   InformationalVersion: 3.0.4+0a14db35cdde11c004296fbc9c680420c8dee637
+//   AssemblyVersion: 3.0.5.0
+//   InformationalVersion: 3.0.5+50cd3a5ddb6026e07a1bf790427b237a96c07bb8
 //   TargetFramework: .NETFramework,Version=v4.5
 //   Configuration: Release
 //   Referenced assemblies:
 //     Smdn.Fundamental.CryptoTransform, Version=3.0.3.0, Culture=neutral
 //     Smdn.Fundamental.Exception, Version=3.0.3.0, Culture=neutral
 //     Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.1.0, Culture=neutral
 //     System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
 //     mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
 #nullable enable annotations
 
 using System.Security.Cryptography;
 using System.Text;
 using Smdn.Formats.PercentEncodings;
 
 namespace Smdn.Formats.PercentEncodings {
   [Flags]
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public enum ToPercentEncodedTransformMode : int {
     EscapeSpaceToPlus = 0x00010000,
     ModeMask = 0x0000ffff,
     OptionMask = 0xffffffff,
     Rfc2396Data = 0x00000002,
     Rfc2396Uri = 0x00000001,
     Rfc3986Data = 0x00000008,
     Rfc3986Uri = 0x00000004,
     Rfc5092Path = 0x00000020,
     Rfc5092Uri = 0x00000010,
     UriEscapeDataString = 0x00000008,
     UriEscapeUriString = 0x00000004,
   }
 
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public sealed class FromPercentEncodedTransform : ICryptoTransform {
     public FromPercentEncodedTransform() {}
     public FromPercentEncodedTransform(bool decodePlusToSpace) {}
 
     public bool CanReuseTransform { get; }
     public bool CanTransformMultipleBlocks { get; }
     public int InputBlockSize { get; }
     public int OutputBlockSize { get; }
 
     public void Clear() {}
-    void IDisposable.Dispose() {}
+    public void Dispose() {}
     public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) {}
     public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) {}
   }
 
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public static class PercentEncoding {
     public static byte[] Decode(string str) {}
     public static byte[] Decode(string str, bool decodePlusToSpace) {}
     public static byte[] Encode(string str, ToPercentEncodedTransformMode mode) {}
     public static byte[] Encode(string str, ToPercentEncodedTransformMode mode, Encoding encoding) {}
     public static string GetDecodedString(string str) {}
     public static string GetDecodedString(string str, Encoding encoding) {}
     public static string GetDecodedString(string str, Encoding encoding, bool decodePlusToSpace) {}
     public static string GetDecodedString(string str, bool decodePlusToSpace) {}
     public static string GetEncodedString(byte[] bytes, ToPercentEncodedTransformMode mode) {}
     public static string GetEncodedString(byte[] bytes, int offset, int count, ToPercentEncodedTransformMode mode) {}
     public static string GetEncodedString(string str, ToPercentEncodedTransformMode mode) {}
     public static string GetEncodedString(string str, ToPercentEncodedTransformMode mode, Encoding encoding) {}
   }
 
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public sealed class ToPercentEncodedTransform : ICryptoTransform {
     public ToPercentEncodedTransform(ToPercentEncodedTransformMode mode) {}
 
     public bool CanReuseTransform { get; }
     public bool CanTransformMultipleBlocks { get; }
     public int InputBlockSize { get; }
     public int OutputBlockSize { get; }
 
     public void Clear() {}
-    void IDisposable.Dispose() {}
+    public void Dispose() {}
     public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) {}
     public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) {}
   }
 }
-// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.0.0.
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.1.0.
 // Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-net6.0.apilist.cs b/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-net6.0.apilist.cs
index 402c3ef8..899adef6 100644
--- a/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-net6.0.apilist.cs
+++ b/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-net6.0.apilist.cs
@@ -1,85 +1,85 @@
-// Smdn.Fundamental.PrintableEncoding.PercentEncoding.dll (Smdn.Fundamental.PrintableEncoding.PercentEncoding-3.0.4)
+// Smdn.Fundamental.PrintableEncoding.PercentEncoding.dll (Smdn.Fundamental.PrintableEncoding.PercentEncoding-3.0.5)
 //   Name: Smdn.Fundamental.PrintableEncoding.PercentEncoding
-//   AssemblyVersion: 3.0.4.0
-//   InformationalVersion: 3.0.4+0a14db35cdde11c004296fbc9c680420c8dee637
+//   AssemblyVersion: 3.0.5.0
+//   InformationalVersion: 3.0.5+50cd3a5ddb6026e07a1bf790427b237a96c07bb8
 //   TargetFramework: .NETCoreApp,Version=v6.0
 //   Configuration: Release
 //   Referenced assemblies:
 //     Smdn.Fundamental.CryptoTransform, Version=3.0.3.0, Culture=neutral
 //     Smdn.Fundamental.Exception, Version=3.0.3.0, Culture=neutral
 //     Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.1.0, Culture=neutral
 //     System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
 //     System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
 //     System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
 #nullable enable annotations
 
 using System.Security.Cryptography;
 using System.Text;
 using Smdn.Formats.PercentEncodings;
 
 namespace Smdn.Formats.PercentEncodings {
   [Flags]
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public enum ToPercentEncodedTransformMode : int {
     EscapeSpaceToPlus = 0x00010000,
     ModeMask = 0x0000ffff,
     OptionMask = 0xffffffff,
     Rfc2396Data = 0x00000002,
     Rfc2396Uri = 0x00000001,
     Rfc3986Data = 0x00000008,
     Rfc3986Uri = 0x00000004,
     Rfc5092Path = 0x00000020,
     Rfc5092Uri = 0x00000010,
     UriEscapeDataString = 0x00000008,
     UriEscapeUriString = 0x00000004,
   }
 
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public sealed class FromPercentEncodedTransform : ICryptoTransform {
     public FromPercentEncodedTransform() {}
     public FromPercentEncodedTransform(bool decodePlusToSpace) {}
 
     public bool CanReuseTransform { get; }
     public bool CanTransformMultipleBlocks { get; }
     public int InputBlockSize { get; }
     public int OutputBlockSize { get; }
 
     public void Clear() {}
-    void IDisposable.Dispose() {}
+    public void Dispose() {}
     public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) {}
     public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) {}
   }
 
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public static class PercentEncoding {
     public static byte[] Decode(string str) {}
     public static byte[] Decode(string str, bool decodePlusToSpace) {}
     public static byte[] Encode(string str, ToPercentEncodedTransformMode mode) {}
     public static byte[] Encode(string str, ToPercentEncodedTransformMode mode, Encoding encoding) {}
     public static string GetDecodedString(string str) {}
     public static string GetDecodedString(string str, Encoding encoding) {}
     public static string GetDecodedString(string str, Encoding encoding, bool decodePlusToSpace) {}
     public static string GetDecodedString(string str, bool decodePlusToSpace) {}
     public static string GetEncodedString(byte[] bytes, ToPercentEncodedTransformMode mode) {}
     public static string GetEncodedString(byte[] bytes, int offset, int count, ToPercentEncodedTransformMode mode) {}
     public static string GetEncodedString(string str, ToPercentEncodedTransformMode mode) {}
     public static string GetEncodedString(string str, ToPercentEncodedTransformMode mode, Encoding encoding) {}
   }
 
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public sealed class ToPercentEncodedTransform : ICryptoTransform {
     public ToPercentEncodedTransform(ToPercentEncodedTransformMode mode) {}
 
     public bool CanReuseTransform { get; }
     public bool CanTransformMultipleBlocks { get; }
     public int InputBlockSize { get; }
     public int OutputBlockSize { get; }
 
     public void Clear() {}
-    void IDisposable.Dispose() {}
+    public void Dispose() {}
     public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) {}
     public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) {}
   }
 }
-// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.0.0.
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.1.0.
 // Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-netstandard1.3.apilist.cs b/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-netstandard1.3.apilist.cs
index aa709642..6e85fb98 100644
--- a/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-netstandard1.3.apilist.cs
+++ b/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-netstandard1.3.apilist.cs
@@ -1,86 +1,86 @@
-// Smdn.Fundamental.PrintableEncoding.PercentEncoding.dll (Smdn.Fundamental.PrintableEncoding.PercentEncoding-3.0.4)
+// Smdn.Fundamental.PrintableEncoding.PercentEncoding.dll (Smdn.Fundamental.PrintableEncoding.PercentEncoding-3.0.5)
 //   Name: Smdn.Fundamental.PrintableEncoding.PercentEncoding
-//   AssemblyVersion: 3.0.4.0
-//   InformationalVersion: 3.0.4+0a14db35cdde11c004296fbc9c680420c8dee637
+//   AssemblyVersion: 3.0.5.0
+//   InformationalVersion: 3.0.5+50cd3a5ddb6026e07a1bf790427b237a96c07bb8
 //   TargetFramework: .NETStandard,Version=v1.3
 //   Configuration: Release
 //   Referenced assemblies:
 //     Smdn.Fundamental.CryptoTransform, Version=3.0.3.0, Culture=neutral
 //     Smdn.Fundamental.Exception, Version=3.0.3.0, Culture=neutral
 //     Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.1.0, Culture=neutral
 //     System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
 //     System.Runtime, Version=4.0.20.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
 //     System.Security.Cryptography.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
 //     System.Text.Encoding, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
 #nullable enable annotations
 
 using System.Security.Cryptography;
 using System.Text;
 using Smdn.Formats.PercentEncodings;
 
 namespace Smdn.Formats.PercentEncodings {
   [Flags]
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public enum ToPercentEncodedTransformMode : int {
     EscapeSpaceToPlus = 0x00010000,
     ModeMask = 0x0000ffff,
     OptionMask = 0xffffffff,
     Rfc2396Data = 0x00000002,
     Rfc2396Uri = 0x00000001,
     Rfc3986Data = 0x00000008,
     Rfc3986Uri = 0x00000004,
     Rfc5092Path = 0x00000020,
     Rfc5092Uri = 0x00000010,
     UriEscapeDataString = 0x00000008,
     UriEscapeUriString = 0x00000004,
   }
 
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public sealed class FromPercentEncodedTransform : ICryptoTransform {
     public FromPercentEncodedTransform() {}
     public FromPercentEncodedTransform(bool decodePlusToSpace) {}
 
     public bool CanReuseTransform { get; }
     public bool CanTransformMultipleBlocks { get; }
     public int InputBlockSize { get; }
     public int OutputBlockSize { get; }
 
     public void Clear() {}
-    void IDisposable.Dispose() {}
+    public void Dispose() {}
     public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) {}
     public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) {}
   }
 
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public static class PercentEncoding {
     public static byte[] Decode(string str) {}
     public static byte[] Decode(string str, bool decodePlusToSpace) {}
     public static byte[] Encode(string str, ToPercentEncodedTransformMode mode) {}
     public static byte[] Encode(string str, ToPercentEncodedTransformMode mode, Encoding encoding) {}
     public static string GetDecodedString(string str) {}
     public static string GetDecodedString(string str, Encoding encoding) {}
     public static string GetDecodedString(string str, Encoding encoding, bool decodePlusToSpace) {}
     public static string GetDecodedString(string str, bool decodePlusToSpace) {}
     public static string GetEncodedString(byte[] bytes, ToPercentEncodedTransformMode mode) {}
     public static string GetEncodedString(byte[] bytes, int offset, int count, ToPercentEncodedTransformMode mode) {}
     public static string GetEncodedString(string str, ToPercentEncodedTransformMode mode) {}
     public static string GetEncodedString(string str, ToPercentEncodedTransformMode mode, Encoding encoding) {}
   }
 
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public sealed class ToPercentEncodedTransform : ICryptoTransform {
     public ToPercentEncodedTransform(ToPercentEncodedTransformMode mode) {}
 
     public bool CanReuseTransform { get; }
     public bool CanTransformMultipleBlocks { get; }
     public int InputBlockSize { get; }
     public int OutputBlockSize { get; }
 
     public void Clear() {}
-    void IDisposable.Dispose() {}
+    public void Dispose() {}
     public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) {}
     public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) {}
   }
 }
-// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.0.0.
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.1.0.
 // Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-netstandard1.6.apilist.cs b/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-netstandard1.6.apilist.cs
index 305dd326..1a8e5525 100644
--- a/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-netstandard1.6.apilist.cs
+++ b/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-netstandard1.6.apilist.cs
@@ -1,86 +1,86 @@
-// Smdn.Fundamental.PrintableEncoding.PercentEncoding.dll (Smdn.Fundamental.PrintableEncoding.PercentEncoding-3.0.4)
+// Smdn.Fundamental.PrintableEncoding.PercentEncoding.dll (Smdn.Fundamental.PrintableEncoding.PercentEncoding-3.0.5)
 //   Name: Smdn.Fundamental.PrintableEncoding.PercentEncoding
-//   AssemblyVersion: 3.0.4.0
-//   InformationalVersion: 3.0.4+0a14db35cdde11c004296fbc9c680420c8dee637
+//   AssemblyVersion: 3.0.5.0
+//   InformationalVersion: 3.0.5+50cd3a5ddb6026e07a1bf790427b237a96c07bb8
 //   TargetFramework: .NETStandard,Version=v1.6
 //   Configuration: Release
 //   Referenced assemblies:
 //     Smdn.Fundamental.CryptoTransform, Version=3.0.3.0, Culture=neutral
 //     Smdn.Fundamental.Exception, Version=3.0.3.0, Culture=neutral
 //     Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.1.0, Culture=neutral
 //     System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
 //     System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
 //     System.Security.Cryptography.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
 //     System.Text.Encoding, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
 #nullable enable annotations
 
 using System.Security.Cryptography;
 using System.Text;
 using Smdn.Formats.PercentEncodings;
 
 namespace Smdn.Formats.PercentEncodings {
   [Flags]
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public enum ToPercentEncodedTransformMode : int {
     EscapeSpaceToPlus = 0x00010000,
     ModeMask = 0x0000ffff,
     OptionMask = 0xffffffff,
     Rfc2396Data = 0x00000002,
     Rfc2396Uri = 0x00000001,
     Rfc3986Data = 0x00000008,
     Rfc3986Uri = 0x00000004,
     Rfc5092Path = 0x00000020,
     Rfc5092Uri = 0x00000010,
     UriEscapeDataString = 0x00000008,
     UriEscapeUriString = 0x00000004,
   }
 
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public sealed class FromPercentEncodedTransform : ICryptoTransform {
     public FromPercentEncodedTransform() {}
     public FromPercentEncodedTransform(bool decodePlusToSpace) {}
 
     public bool CanReuseTransform { get; }
     public bool CanTransformMultipleBlocks { get; }
     public int InputBlockSize { get; }
     public int OutputBlockSize { get; }
 
     public void Clear() {}
-    void IDisposable.Dispose() {}
+    public void Dispose() {}
     public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) {}
     public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) {}
   }
 
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public static class PercentEncoding {
     public static byte[] Decode(string str) {}
     public static byte[] Decode(string str, bool decodePlusToSpace) {}
     public static byte[] Encode(string str, ToPercentEncodedTransformMode mode) {}
     public static byte[] Encode(string str, ToPercentEncodedTransformMode mode, Encoding encoding) {}
     public static string GetDecodedString(string str) {}
     public static string GetDecodedString(string str, Encoding encoding) {}
     public static string GetDecodedString(string str, Encoding encoding, bool decodePlusToSpace) {}
     public static string GetDecodedString(string str, bool decodePlusToSpace) {}
     public static string GetEncodedString(byte[] bytes, ToPercentEncodedTransformMode mode) {}
     public static string GetEncodedString(byte[] bytes, int offset, int count, ToPercentEncodedTransformMode mode) {}
     public static string GetEncodedString(string str, ToPercentEncodedTransformMode mode) {}
     public static string GetEncodedString(string str, ToPercentEncodedTransformMode mode, Encoding encoding) {}
   }
 
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public sealed class ToPercentEncodedTransform : ICryptoTransform {
     public ToPercentEncodedTransform(ToPercentEncodedTransformMode mode) {}
 
     public bool CanReuseTransform { get; }
     public bool CanTransformMultipleBlocks { get; }
     public int InputBlockSize { get; }
     public int OutputBlockSize { get; }
 
     public void Clear() {}
-    void IDisposable.Dispose() {}
+    public void Dispose() {}
     public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) {}
     public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) {}
   }
 }
-// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.0.0.
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.1.0.
 // Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-netstandard2.1.apilist.cs b/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-netstandard2.1.apilist.cs
index 6ee0d43e..cef120db 100644
--- a/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-netstandard2.1.apilist.cs
+++ b/doc/api-list/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding-netstandard2.1.apilist.cs
@@ -1,83 +1,83 @@
-// Smdn.Fundamental.PrintableEncoding.PercentEncoding.dll (Smdn.Fundamental.PrintableEncoding.PercentEncoding-3.0.4)
+// Smdn.Fundamental.PrintableEncoding.PercentEncoding.dll (Smdn.Fundamental.PrintableEncoding.PercentEncoding-3.0.5)
 //   Name: Smdn.Fundamental.PrintableEncoding.PercentEncoding
-//   AssemblyVersion: 3.0.4.0
-//   InformationalVersion: 3.0.4+0a14db35cdde11c004296fbc9c680420c8dee637
+//   AssemblyVersion: 3.0.5.0
+//   InformationalVersion: 3.0.5+50cd3a5ddb6026e07a1bf790427b237a96c07bb8
 //   TargetFramework: .NETStandard,Version=v2.1
 //   Configuration: Release
 //   Referenced assemblies:
 //     Smdn.Fundamental.CryptoTransform, Version=3.0.3.0, Culture=neutral
 //     Smdn.Fundamental.Exception, Version=3.0.3.0, Culture=neutral
 //     Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.1.0, Culture=neutral
 //     netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
 #nullable enable annotations
 
 using System.Security.Cryptography;
 using System.Text;
 using Smdn.Formats.PercentEncodings;
 
 namespace Smdn.Formats.PercentEncodings {
   [Flags]
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public enum ToPercentEncodedTransformMode : int {
     EscapeSpaceToPlus = 0x00010000,
     ModeMask = 0x0000ffff,
     OptionMask = 0xffffffff,
     Rfc2396Data = 0x00000002,
     Rfc2396Uri = 0x00000001,
     Rfc3986Data = 0x00000008,
     Rfc3986Uri = 0x00000004,
     Rfc5092Path = 0x00000020,
     Rfc5092Uri = 0x00000010,
     UriEscapeDataString = 0x00000008,
     UriEscapeUriString = 0x00000004,
   }
 
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public sealed class FromPercentEncodedTransform : ICryptoTransform {
     public FromPercentEncodedTransform() {}
     public FromPercentEncodedTransform(bool decodePlusToSpace) {}
 
     public bool CanReuseTransform { get; }
     public bool CanTransformMultipleBlocks { get; }
     public int InputBlockSize { get; }
     public int OutputBlockSize { get; }
 
     public void Clear() {}
-    void IDisposable.Dispose() {}
+    public void Dispose() {}
     public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) {}
     public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) {}
   }
 
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public static class PercentEncoding {
     public static byte[] Decode(string str) {}
     public static byte[] Decode(string str, bool decodePlusToSpace) {}
     public static byte[] Encode(string str, ToPercentEncodedTransformMode mode) {}
     public static byte[] Encode(string str, ToPercentEncodedTransformMode mode, Encoding encoding) {}
     public static string GetDecodedString(string str) {}
     public static string GetDecodedString(string str, Encoding encoding) {}
     public static string GetDecodedString(string str, Encoding encoding, bool decodePlusToSpace) {}
     public static string GetDecodedString(string str, bool decodePlusToSpace) {}
     public static string GetEncodedString(byte[] bytes, ToPercentEncodedTransformMode mode) {}
     public static string GetEncodedString(byte[] bytes, int offset, int count, ToPercentEncodedTransformMode mode) {}
     public static string GetEncodedString(string str, ToPercentEncodedTransformMode mode) {}
     public static string GetEncodedString(string str, ToPercentEncodedTransformMode mode, Encoding encoding) {}
   }
 
   [TypeForwardedFrom("Smdn, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null")]
   public sealed class ToPercentEncodedTransform : ICryptoTransform {
     public ToPercentEncodedTransform(ToPercentEncodedTransformMode mode) {}
 
     public bool CanReuseTransform { get; }
     public bool CanTransformMultipleBlocks { get; }
     public int InputBlockSize { get; }
     public int OutputBlockSize { get; }
 
     public void Clear() {}
-    void IDisposable.Dispose() {}
+    public void Dispose() {}
     public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) {}
     public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) {}
   }
 }
-// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.0.0.
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.1.0.
 // Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)

Full changes

Full changes in this release:
diff --git a/src/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Formats.PercentEncodings/FromPercentEncodedTransform.cs b/src/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Formats.PercentEncodings/FromPercentEncodedTransform.cs
index d7c7fc5e..568bde86 100644
--- a/src/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Formats.PercentEncodings/FromPercentEncodedTransform.cs
+++ b/src/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Formats.PercentEncodings/FromPercentEncodedTransform.cs
@@ -25,11 +25,14 @@ public sealed class FromPercentEncodedTransform : ICryptoTransform {
   }
 
   public void Clear()
+    => Dispose();
+
+  public void Dispose()
   {
     disposed = true;
-  }
 
-  void IDisposable.Dispose() => Clear();
+    GC.SuppressFinalize(this);
+  }
 
   public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset)
   {
@@ -112,7 +115,7 @@ public sealed class FromPercentEncodedTransform : ICryptoTransform {
   }
 
   private readonly byte[] buffer = new byte[3];
-  private int bufferOffset = 0;
-  private bool disposed = false;
+  private int bufferOffset;
+  private bool disposed;
   private readonly bool decodePlusToSpace;
 }
diff --git a/src/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Formats.PercentEncodings/PercentEncoding.cs b/src/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Formats.PercentEncodings/PercentEncoding.cs
index 5c557fe2..3cb21c84 100644
--- a/src/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Formats.PercentEncodings/PercentEncoding.cs
+++ b/src/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Formats.PercentEncodings/PercentEncoding.cs
@@ -17,11 +17,15 @@ public static class PercentEncoding {
     => GetEncodedString(str, mode, Encoding.ASCII);
 
   public static string GetEncodedString(string str, ToPercentEncodedTransformMode mode, Encoding encoding)
-    => ICryptoTransformExtensions.TransformStringTo(
-      new ToPercentEncodedTransform(mode),
+  {
+    using var transform = new ToPercentEncodedTransform(mode);
+
+    return ICryptoTransformExtensions.TransformStringTo(
+      transform,
       str,
       encoding
     );
+  }
 
   public static string GetEncodedString(byte[] bytes, ToPercentEncodedTransformMode mode)
   {
@@ -32,14 +36,18 @@ public static class PercentEncoding {
   }
 
   public static string GetEncodedString(byte[] bytes, int offset, int count, ToPercentEncodedTransformMode mode)
-    => Encoding.ASCII.GetString(
+  {
+    using var transform = new ToPercentEncodedTransform(mode);
+
+    return Encoding.ASCII.GetString(
       ICryptoTransformExtensions.TransformBytes(
-        new ToPercentEncodedTransform(mode),
+        transform,
         bytes,
         offset,
         count
       )
     );
+  }
 
   public static byte[] Encode(string str, ToPercentEncodedTransformMode mode)
     => Encode(str, mode, Encoding.ASCII);
@@ -49,10 +57,11 @@ public static class PercentEncoding {
     if (encoding == null)
       throw new ArgumentNullException(nameof(encoding));
 
+    using var transform = new ToPercentEncodedTransform(mode);
     var bytes = encoding.GetBytes(str);
 
     return ICryptoTransformExtensions.TransformBytes(
-      new ToPercentEncodedTransform(mode),
+      transform,
       bytes,
       0,
       bytes.Length
@@ -69,21 +78,26 @@ public static class PercentEncoding {
     => GetDecodedString(str, encoding, false);
 
   public static string GetDecodedString(string str, Encoding encoding, bool decodePlusToSpace)
-    => ICryptoTransformExtensions.TransformStringFrom(
-      new FromPercentEncodedTransform(decodePlusToSpace),
+  {
+    using var transform = new FromPercentEncodedTransform(decodePlusToSpace);
+
+    return ICryptoTransformExtensions.TransformStringFrom(
+      transform,
       str,
       encoding
     );
+  }
 
   public static byte[] Decode(string str)
     => Decode(str, false);
 
   public static byte[] Decode(string str, bool decodePlusToSpace)
   {
+    using var transform = new FromPercentEncodedTransform(decodePlusToSpace);
     var bytes = Encoding.ASCII.GetBytes(str);
 
     return ICryptoTransformExtensions.TransformBytes(
-      new FromPercentEncodedTransform(decodePlusToSpace),
+      transform,
       bytes,
       0,
       bytes.Length
diff --git a/src/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Formats.PercentEncodings/ToPercentEncodedTransform.cs b/src/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Formats.PercentEncodings/ToPercentEncodedTransform.cs
index 62cc6004..caf7b25e 100644
--- a/src/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Formats.PercentEncodings/ToPercentEncodedTransform.cs
+++ b/src/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Formats.PercentEncodings/ToPercentEncodedTransform.cs
@@ -76,11 +76,14 @@ public sealed class ToPercentEncodedTransform : ICryptoTransform {
   }
 
   public void Clear()
+    => Dispose();
+
+  public void Dispose()
   {
     disposed = true;
-  }
 
-  void IDisposable.Dispose() => Clear();
+    GC.SuppressFinalize(this);
+  }
 
   public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset)
   {
@@ -162,7 +165,7 @@ public sealed class ToPercentEncodedTransform : ICryptoTransform {
     return outputBuffer;
   }
 
-  private bool disposed = false;
+  private bool disposed;
   private readonly byte[] escapeOctets;
   private readonly bool escapeSpaceToPlus;
 }
diff --git a/src/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding.csproj b/src/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding.csproj
index 70f79fba..c5cd48c4 100644
--- a/src/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding.csproj
+++ b/src/Smdn.Fundamental.PrintableEncoding.PercentEncoding/Smdn.Fundamental.PrintableEncoding.PercentEncoding.csproj
@@ -5,10 +5,11 @@ SPDX-License-Identifier: MIT
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
     <TargetFrameworks>net6.0;net45;netstandard2.1;netstandard1.6;netstandard1.3</TargetFrameworks>
-    <VersionPrefix>3.0.4</VersionPrefix>
+    <VersionPrefix>3.0.5</VersionPrefix>
     <VersionSuffix></VersionSuffix>
     <PackageValidationBaselineVersion>3.0.0</PackageValidationBaselineVersion>
     <Nullable>enable</Nullable>
+    <RootNamespace/> <!-- empty the root namespace so that the namespace is determined only by the directory name, for code style rule IDE0030 -->
   </PropertyGroup>
 
   <PropertyGroup Label="assembly attributes">

Notes

Full Changelog: releases/Smdn.Fundamental.PrintableEncoding.PercentEncoding-3.0.4...releases/Smdn.Fundamental.PrintableEncoding.PercentEncoding-3.0.5