Releases: smdn/Smdn.Reflection.ReverseGenerating
Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks version 1.8.2
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2026-02-28 update assembly version
Full changes
Full changes in this release:
diff --git a/src/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks.csproj b/src/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks.csproj
index f69e2ee..02424d6 100644
--- a/src/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks.csproj
+++ b/src/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks.csproj
@@ -6,7 +6,7 @@ SPDX-License-Identifier: MIT
<PropertyGroup>
<TargetFrameworks>net10.0;net8.0</TargetFrameworks>
<RootNamespace>Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks</RootNamespace>
- <VersionPrefix>1.8.1</VersionPrefix>
+ <VersionPrefix>1.8.2</VersionPrefix>
<VersionSuffix></VersionSuffix>
<NoWarn>CS1591;$(NoWarn)</NoWarn> <!-- CS1591: Missing XML comment for publicly visible type or member 'Type_or_Member' -->
Notes
Full Changelog: releases/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks-1.8.1...releases/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks-1.8.2
Smdn.Reflection.ReverseGenerating.ListApi.Core version 1.6.2
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.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net10.0.apilist.cs b/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net10.0.apilist.cs
index 527ece0..ee5f7e9 100644
--- a/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net10.0.apilist.cs
+++ b/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net10.0.apilist.cs
@@ -1,107 +1,107 @@
-// Smdn.Reflection.ReverseGenerating.ListApi.Core.dll (Smdn.Reflection.ReverseGenerating.ListApi.Core-1.6.1)
+// Smdn.Reflection.ReverseGenerating.ListApi.Core.dll (Smdn.Reflection.ReverseGenerating.ListApi.Core-1.6.2)
// Name: Smdn.Reflection.ReverseGenerating.ListApi.Core
-// AssemblyVersion: 1.6.1.0
-// InformationalVersion: 1.6.1+8f2fd17773e02aaf2e4ed59e8ca3033eb44646a3
+// AssemblyVersion: 1.6.2.0
+// InformationalVersion: 1.6.2+387751ca3ea56db36a122207609dcb75b152ad1a
// TargetFramework: .NETCoreApp,Version=v10.0
// Configuration: Release
// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Reflection.ReverseGenerating
// Metadata: RepositoryBranch=main
-// Metadata: RepositoryCommit=8f2fd17773e02aaf2e4ed59e8ca3033eb44646a3
+// Metadata: RepositoryCommit=387751ca3ea56db36a122207609dcb75b152ad1a
// Referenced assemblies:
// Microsoft.Extensions.DependencyModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Smdn.Fundamental.Reflection, Version=3.10.1.0, Culture=neutral
// Smdn.Reflection.ReverseGenerating, Version=1.5.1.0, Culture=neutral
// System.Collections, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Linq, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Memory, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Reflection.Metadata, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Reflection.MetadataLoadContext, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime.InteropServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime.Loader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Reflection;
using System.Runtime.Versioning;
using Microsoft.Extensions.Logging;
using Smdn.Reflection.ReverseGenerating;
using Smdn.Reflection.ReverseGenerating.ListApi;
namespace Smdn.Reflection.ReverseGenerating.ListApi {
public class ApiListWriter {
public ApiListWriter(TextWriter baseWriter, Assembly assembly, ApiListWriterOptions? options) {}
public ApiListWriter(TextWriter baseWriter, Assembly assembly, ApiListWriterOptions? options, ILogger? logger) {}
public TextWriter BaseWriter { get; }
[Obsolete("Use WriteHeader")]
public void WriteAssemblyInfoHeader() {}
public void WriteExportedTypes() {}
public void WriteFooter() {}
public void WriteHeader() {}
}
public class ApiListWriterOptions : GeneratorOptions {
public class WriterOptions {
public WriterOptions() {}
public bool ExcludeFixedBufferFieldTypes { get; set; }
public bool OmitCompilerGeneratedRecordEqualityMethods { get; set; }
public bool OrderExtensionDeclarationsFirst { get; set; }
public bool OrderStaticMembersFirst { get; set; }
public bool ReconstructExtensionDeclarations { get; set; }
public bool ThrowIfForwardedTypesCouldNotLoaded { get; set; }
public bool WriteAssemblyInfo { get; set; }
public bool WriteEmbeddedResources { get; set; }
public bool WriteFooter { get; set; }
public bool WriteHeader { get; set; }
public bool WriteNullableAnnotationDirective { get; set; }
public bool WriteReferencedAssemblies { get; set; }
}
public ApiListWriterOptions() {}
public ApiListWriterOptions.WriterOptions Writer { get; }
}
public static class AssemblyExtensions {
[return: MaybeNull] public static TValue GetAssemblyMetadataAttributeValue<TAssemblyMetadataAttribute, TValue>(this Assembly assm) where TAssemblyMetadataAttribute : Attribute {}
}
public sealed class AssemblyFileNotFoundException : FileNotFoundException {
public AssemblyFileNotFoundException() {}
public AssemblyFileNotFoundException(string? message) {}
public AssemblyFileNotFoundException(string? message, Exception? innerException) {}
public AssemblyFileNotFoundException(string? message, string? fileName, Exception? innerException) {}
}
public static class AssemblyLoader {
[return: MaybeNull] public static TResult UsingAssembly<TArg, TResult>(FileInfo assemblyFile, bool loadIntoReflectionOnlyContext, TArg arg, Func<Assembly, TArg, TResult>? actionWithLoadedAssembly, out WeakReference? context, ILogger? logger = null) {}
[return: MaybeNull] public static TResult UsingAssembly<TArg, TResult>(Stream assemblyStream, string componentAssemblyPath, bool loadIntoReflectionOnlyContext, TArg arg, Func<Assembly, TArg, TResult> actionWithLoadedAssembly, out WeakReference? context, ILogger? logger = null) {}
}
public static class AttributeFilter {
public static readonly AttributeTypeFilter Default; // = "Smdn.Reflection.ReverseGenerating.AttributeTypeFilter"
}
public static class FrameworkMonikers {
public static bool TryGetMoniker(FrameworkName frameworkName, string? osSpecifier, [NotNullWhen(true)] out string? frameworkMoniker) {}
}
public class MemberInfoComparer : IComparer<MemberInfo> {
public static readonly MemberInfoComparer Default; // = "Smdn.Reflection.ReverseGenerating.ListApi.MemberInfoComparer"
public static readonly MemberInfoComparer StaticMembersFirst; // = "Smdn.Reflection.ReverseGenerating.ListApi.MemberInfoComparer"
public MemberInfoComparer(int orderOfStaticMember, int orderOfInstanceMember) {}
public int Compare(MemberInfo? x, MemberInfo? y) {}
public int GetOrder(MemberInfo? member) {}
}
}
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.8.0.0.
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.6.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net8.0.apilist.cs b/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net8.0.apilist.cs
index 7ec7df7..3150803 100644
--- a/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net8.0.apilist.cs
+++ b/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net8.0.apilist.cs
@@ -1,107 +1,107 @@
-// Smdn.Reflection.ReverseGenerating.ListApi.Core.dll (Smdn.Reflection.ReverseGenerating.ListApi.Core-1.6.1)
+// Smdn.Reflection.ReverseGenerating.ListApi.Core.dll (Smdn.Reflection.ReverseGenerating.ListApi.Core-1.6.2)
// Name: Smdn.Reflection.ReverseGenerating.ListApi.Core
-// AssemblyVersion: 1.6.1.0
-// InformationalVersion: 1.6.1+8f2fd17773e02aaf2e4ed59e8ca3033eb44646a3
+// AssemblyVersion: 1.6.2.0
+// InformationalVersion: 1.6.2+387751ca3ea56db36a122207609dcb75b152ad1a
// TargetFramework: .NETCoreApp,Version=v8.0
// Configuration: Release
// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Reflection.ReverseGenerating
// Metadata: RepositoryBranch=main
-// Metadata: RepositoryCommit=8f2fd17773e02aaf2e4ed59e8ca3033eb44646a3
+// Metadata: RepositoryCommit=387751ca3ea56db36a122207609dcb75b152ad1a
// Referenced assemblies:
// Microsoft.Extensions.DependencyModel, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Smdn.Fundamental.Reflection, Version=3.10.1.0, Culture=neutral
// Smdn.Reflection.ReverseGenerating, Version=1.5.1.0, Culture=neutral
// System.Collections, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Linq, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Memory, Version=...Smdn.Reflection.ReverseGenerating.ListApi version 1.6.2
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2026-02-28 bump Smdn.Reflection.ReverseGenerating.ListApi.Core
- 2026-02-28 update assembly version
- 2026-02-28 suppress warning CA1873
Full changes
Full changes in this release:
diff --git a/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi.csproj b/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi.csproj
index ee83308..053de5d 100644
--- a/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi.csproj
+++ b/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi.csproj
@@ -8,7 +8,7 @@ SPDX-License-Identifier: MIT
<PackAsTool>true</PackAsTool>
<TargetFrameworks>net10.0;net8.0<!-- ;net472 --></TargetFrameworks>
<ToolCommandName>list-api</ToolCommandName>
- <VersionPrefix>1.6.1</VersionPrefix>
+ <VersionPrefix>1.6.2</VersionPrefix>
<VersionSuffix></VersionSuffix>
<IsAotCompatible>false</IsAotCompatible>
<NoWarn>CS1591;$(NoWarn)</NoWarn> <!-- CS1591: Missing XML comment for publicly visible type or member 'Type_or_Member' -->
@@ -32,7 +32,7 @@ SPDX-License-Identifier: MIT
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" Condition="$(TargetFramework.StartsWith('net8.'))" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.0" Condition="$(TargetFramework.StartsWith('net10.'))" />
- <ProjectOrPackageReference ReferencePackageVersion="[1.6.1,2.0.0)" Include="..\Smdn.Reflection.ReverseGenerating.ListApi.Core\Smdn.Reflection.ReverseGenerating.ListApi.Core.csproj" />
+ <ProjectOrPackageReference ReferencePackageVersion="[1.6.2,2.0.0)" Include="..\Smdn.Reflection.ReverseGenerating.ListApi.Core\Smdn.Reflection.ReverseGenerating.ListApi.Core.csproj" />
</ItemGroup>
<Target Name="WriteConstantsFile" BeforeTargets="BeforeBuild">
diff --git a/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi/ProjectFinder.cs b/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi/ProjectFinder.cs
index 39e289e..0b94dd9 100644
--- a/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi/ProjectFinder.cs
+++ b/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi/ProjectFinder.cs
@@ -1,6 +1,6 @@
// SPDX-FileCopyrightText: 2021 smdn <smdn@smdn.jp>
// SPDX-License-Identifier: MIT
-#pragma warning disable CA1848
+#pragma warning disable CA1848, CA1873
using System;
using System.IO;
diff --git a/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi/RootCommandImplementation.cs b/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi/RootCommandImplementation.cs
index 59c3a0b..522173a 100644
--- a/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi/RootCommandImplementation.cs
+++ b/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi/RootCommandImplementation.cs
@@ -1,6 +1,6 @@
// SPDX-FileCopyrightText: 2021 smdn <smdn@smdn.jp>
// SPDX-License-Identifier: MIT
-#pragma warning disable CA1848
+#pragma warning disable CA1848, CA1873
using System;
using System.Collections.Generic;Notes
Full Changelog: releases/Smdn.Reflection.ReverseGenerating.ListApi-1.6.1...releases/Smdn.Reflection.ReverseGenerating.ListApi-1.6.2
Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks version 1.8.1
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2026-02-09 update assembly version
Full changes
Full changes in this release:
diff --git a/src/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks.csproj b/src/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks.csproj
index 28eeef0..f69e2ee 100644
--- a/src/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks.csproj
+++ b/src/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks.csproj
@@ -6,7 +6,7 @@ SPDX-License-Identifier: MIT
<PropertyGroup>
<TargetFrameworks>net10.0;net8.0</TargetFrameworks>
<RootNamespace>Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks</RootNamespace>
- <VersionPrefix>1.8.0</VersionPrefix>
+ <VersionPrefix>1.8.1</VersionPrefix>
<VersionSuffix></VersionSuffix>
<NoWarn>CS1591;$(NoWarn)</NoWarn> <!-- CS1591: Missing XML comment for publicly visible type or member 'Type_or_Member' -->
Notes
Full Changelog: releases/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks-1.8.0...releases/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks-1.8.1
Smdn.Reflection.ReverseGenerating.ListApi.Core version 1.6.1
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2026-02-09 update assembly version
- 2026-02-09 bump Smdn.Reflection.ReverseGenerating
- 2026-02-09 improve handling record type and its members in reflection-only context
- 2026-02-09 output the runtime directory path to the log
- 2026-02-09 pass an ILogger to PathAssemblyDependencyResolver to improve logging
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net10.0.apilist.cs b/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net10.0.apilist.cs
index 8755ffa..527ece0 100644
--- a/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net10.0.apilist.cs
+++ b/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net10.0.apilist.cs
@@ -1,106 +1,107 @@
-// Smdn.Reflection.ReverseGenerating.ListApi.Core.dll (Smdn.Reflection.ReverseGenerating.ListApi.Core-1.6.0)
+// Smdn.Reflection.ReverseGenerating.ListApi.Core.dll (Smdn.Reflection.ReverseGenerating.ListApi.Core-1.6.1)
// Name: Smdn.Reflection.ReverseGenerating.ListApi.Core
-// AssemblyVersion: 1.6.0.0
-// InformationalVersion: 1.6.0+6287d2840011d0affcb50c6129b0ccffb5f13e1d
+// AssemblyVersion: 1.6.1.0
+// InformationalVersion: 1.6.1+8f2fd17773e02aaf2e4ed59e8ca3033eb44646a3
// TargetFramework: .NETCoreApp,Version=v10.0
// Configuration: Release
// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Reflection.ReverseGenerating
// Metadata: RepositoryBranch=main
-// Metadata: RepositoryCommit=6287d2840011d0affcb50c6129b0ccffb5f13e1d
+// Metadata: RepositoryCommit=8f2fd17773e02aaf2e4ed59e8ca3033eb44646a3
// Referenced assemblies:
// Microsoft.Extensions.DependencyModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
-// Smdn.Fundamental.Reflection, Version=3.10.0.0, Culture=neutral
-// Smdn.Reflection.ReverseGenerating, Version=1.5.0.0, Culture=neutral
+// Smdn.Fundamental.Reflection, Version=3.10.1.0, Culture=neutral
+// Smdn.Reflection.ReverseGenerating, Version=1.5.1.0, Culture=neutral
// System.Collections, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Linq, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Memory, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Reflection.Metadata, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Reflection.MetadataLoadContext, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime.InteropServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime.Loader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Reflection;
using System.Runtime.Versioning;
using Microsoft.Extensions.Logging;
using Smdn.Reflection.ReverseGenerating;
using Smdn.Reflection.ReverseGenerating.ListApi;
namespace Smdn.Reflection.ReverseGenerating.ListApi {
public class ApiListWriter {
public ApiListWriter(TextWriter baseWriter, Assembly assembly, ApiListWriterOptions? options) {}
public ApiListWriter(TextWriter baseWriter, Assembly assembly, ApiListWriterOptions? options, ILogger? logger) {}
public TextWriter BaseWriter { get; }
[Obsolete("Use WriteHeader")]
public void WriteAssemblyInfoHeader() {}
public void WriteExportedTypes() {}
public void WriteFooter() {}
public void WriteHeader() {}
}
public class ApiListWriterOptions : GeneratorOptions {
public class WriterOptions {
public WriterOptions() {}
public bool ExcludeFixedBufferFieldTypes { get; set; }
public bool OmitCompilerGeneratedRecordEqualityMethods { get; set; }
public bool OrderExtensionDeclarationsFirst { get; set; }
public bool OrderStaticMembersFirst { get; set; }
public bool ReconstructExtensionDeclarations { get; set; }
public bool ThrowIfForwardedTypesCouldNotLoaded { get; set; }
public bool WriteAssemblyInfo { get; set; }
public bool WriteEmbeddedResources { get; set; }
public bool WriteFooter { get; set; }
public bool WriteHeader { get; set; }
public bool WriteNullableAnnotationDirective { get; set; }
public bool WriteReferencedAssemblies { get; set; }
}
public ApiListWriterOptions() {}
public ApiListWriterOptions.WriterOptions Writer { get; }
}
public static class AssemblyExtensions {
[return: MaybeNull] public static TValue GetAssemblyMetadataAttributeValue<TAssemblyMetadataAttribute, TValue>(this Assembly assm) where TAssemblyMetadataAttribute : Attribute {}
}
public sealed class AssemblyFileNotFoundException : FileNotFoundException {
public AssemblyFileNotFoundException() {}
public AssemblyFileNotFoundException(string? message) {}
public AssemblyFileNotFoundException(string? message, Exception? innerException) {}
public AssemblyFileNotFoundException(string? message, string? fileName, Exception? innerException) {}
}
public static class AssemblyLoader {
[return: MaybeNull] public static TResult UsingAssembly<TArg, TResult>(FileInfo assemblyFile, bool loadIntoReflectionOnlyContext, TArg arg, Func<Assembly, TArg, TResult>? actionWithLoadedAssembly, out WeakReference? context, ILogger? logger = null) {}
[return: MaybeNull] public static TResult UsingAssembly<TArg, TResult>(Stream assemblyStream, string componentAssemblyPath, bool loadIntoReflectionOnlyContext, TArg arg, Func<Assembly, TArg, TResult> actionWithLoadedAssembly, out WeakReference? context, ILogger? logger = null) {}
}
public static class AttributeFilter {
public static readonly AttributeTypeFilter Default; // = "Smdn.Reflection.ReverseGenerating.AttributeTypeFilter"
}
public static class FrameworkMonikers {
public static bool TryGetMoniker(FrameworkName frameworkName, string? osSpecifier, [NotNullWhen(true)] out string? frameworkMoniker) {}
}
public class MemberInfoComparer : IComparer<MemberInfo> {
public static readonly MemberInfoComparer Default; // = "Smdn.Reflection.ReverseGenerating.ListApi.MemberInfoComparer"
public static readonly MemberInfoComparer StaticMembersFirst; // = "Smdn.Reflection.ReverseGenerating.ListApi.MemberInfoComparer"
public MemberInfoComparer(int orderOfStaticMember, int orderOfInstanceMember) {}
public int Compare(MemberInfo? x, MemberInfo? y) {}
public int GetOrder(MemberInfo? member) {}
}
}
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.8.0.0.
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.6.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net8.0.apilist.cs b/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net8.0.apilist.cs
index 87a9230..7ec7df7 100644
--- a/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net8.0.apilist.cs
+++ b/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net8.0.apilist.cs
@@ -1,106 +1,107 @@
-// Smdn.Reflection.ReverseGenerating.ListApi.Core.dll (Smdn.Reflection.ReverseGenerating.ListApi.Core-1.6.0)
+// Smdn.Reflection.ReverseGenerating.ListApi.Core.dll (Smdn.Reflection.ReverseGenerating.ListApi.Core-1.6.1)
// Name: Smdn.Reflection.ReverseGenerating.ListApi.Core
-// AssemblyVersion: 1.6.0.0
-// InformationalVersion: 1.6.0+6287d2840011d0affcb50c6129b0ccffb5f13e1d
+// AssemblyVersion: 1.6.1.0
+// InformationalVersion: 1.6.1+8f2fd17773e02aaf2e4ed59e8ca3033eb44646a3
// TargetFramework: .NETCoreApp,Version=v8.0
// Configuration: Release
// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Reflection.ReverseGenerating
// Metadata: RepositoryBranch=main
-// Metadata: RepositoryCommit=6287d2840011d0affcb50c6129b0ccffb5f13e1d
+// Metadata: RepositoryCommit=8f2fd17773e02aaf2e4ed59e8ca3033eb44646a3
// Referenced assemblies:
// Microsoft.Extensions.DependencyModel, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
-// Smdn.Fundamental.Reflection, Version=3.10.0.0,...Smdn.Reflection.ReverseGenerating.ListApi version 1.6.1
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2026-02-09 update assembly version
- 2026-02-09 bump Smdn.Reflection.ReverseGenerating.ListApi.Core
Full changes
Full changes in this release:
diff --git a/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi.csproj b/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi.csproj
index fd10975..ee83308 100644
--- a/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi.csproj
+++ b/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi.csproj
@@ -8,7 +8,7 @@ SPDX-License-Identifier: MIT
<PackAsTool>true</PackAsTool>
<TargetFrameworks>net10.0;net8.0<!-- ;net472 --></TargetFrameworks>
<ToolCommandName>list-api</ToolCommandName>
- <VersionPrefix>1.6.0</VersionPrefix>
+ <VersionPrefix>1.6.1</VersionPrefix>
<VersionSuffix></VersionSuffix>
<IsAotCompatible>false</IsAotCompatible>
<NoWarn>CS1591;$(NoWarn)</NoWarn> <!-- CS1591: Missing XML comment for publicly visible type or member 'Type_or_Member' -->
@@ -32,7 +32,7 @@ SPDX-License-Identifier: MIT
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" Condition="$(TargetFramework.StartsWith('net8.'))" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.0" Condition="$(TargetFramework.StartsWith('net10.'))" />
- <ProjectOrPackageReference ReferencePackageVersion="[1.6.0,2.0.0)" Include="..\Smdn.Reflection.ReverseGenerating.ListApi.Core\Smdn.Reflection.ReverseGenerating.ListApi.Core.csproj" />
+ <ProjectOrPackageReference ReferencePackageVersion="[1.6.1,2.0.0)" Include="..\Smdn.Reflection.ReverseGenerating.ListApi.Core\Smdn.Reflection.ReverseGenerating.ListApi.Core.csproj" />
</ItemGroup>
<Target Name="WriteConstantsFile" BeforeTargets="BeforeBuild">Notes
Full Changelog: releases/Smdn.Reflection.ReverseGenerating.ListApi-1.6.0...releases/Smdn.Reflection.ReverseGenerating.ListApi-1.6.1
Smdn.Reflection.ReverseGenerating version 1.5.1
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2026-02-09 update assembly version
- 2026-02-09 improve detection of explicit implementations of interface members in MetadataLoadContext
- 2026-02-09 fix to not display the variance specifiers in generic parameter constraint clauses
- 2026-02-09 add workaround for issue that AsSpan() calls for Type.GetGenericArguments() throws ArrayTypeMismatchException in reflection-only context
- 2026-02-09 improve handling record type and its members in reflection-only context
- 2026-02-09 add TypeNullableUnderlyingTypeExtensions
- 2026-02-09 disable showing default value for extension parameter declarations
- 2026-02-09 bump Smdn.Fundamental.Reflection
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Reflection.ReverseGenerating/Smdn.Reflection.ReverseGenerating-net10.0.apilist.cs b/doc/api-list/Smdn.Reflection.ReverseGenerating/Smdn.Reflection.ReverseGenerating-net10.0.apilist.cs
index edb0995..bf5436a 100644
--- a/doc/api-list/Smdn.Reflection.ReverseGenerating/Smdn.Reflection.ReverseGenerating-net10.0.apilist.cs
+++ b/doc/api-list/Smdn.Reflection.ReverseGenerating/Smdn.Reflection.ReverseGenerating-net10.0.apilist.cs
@@ -1,166 +1,166 @@
-// Smdn.Reflection.ReverseGenerating.dll (Smdn.Reflection.ReverseGenerating-1.5.0)
+// Smdn.Reflection.ReverseGenerating.dll (Smdn.Reflection.ReverseGenerating-1.5.1)
// Name: Smdn.Reflection.ReverseGenerating
-// AssemblyVersion: 1.5.0.0
-// InformationalVersion: 1.5.0+4160e5e53896561df55366887f66b3a4a25e5b6b
+// AssemblyVersion: 1.5.1.0
+// InformationalVersion: 1.5.1+4587b48c0c51417cbc6cbf632d4b0299739a7a7c
// TargetFramework: .NETCoreApp,Version=v10.0
// Configuration: Release
// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Reflection.ReverseGenerating
// Metadata: RepositoryBranch=main
-// Metadata: RepositoryCommit=4160e5e53896561df55366887f66b3a4a25e5b6b
+// Metadata: RepositoryCommit=4587b48c0c51417cbc6cbf632d4b0299739a7a7c
// Referenced assemblies:
-// Smdn.Fundamental.Reflection, Version=3.10.0.0, Culture=neutral
+// Smdn.Fundamental.Reflection, Version=3.10.1.0, Culture=neutral
// System.Collections, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Collections.Immutable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Linq, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Memory, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Threading, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Reflection;
using Smdn.Reflection;
using Smdn.Reflection.ReverseGenerating;
namespace Smdn.Reflection.ReverseGenerating {
public delegate bool AttributeTypeFilter(Type type, ICustomAttributeProvider attributeProvider);
public enum AttributeSectionFormat : int {
Discrete = 1,
List = 0,
}
public enum MethodBodyOption : int {
EmptyImplementation = 1,
None = 0,
ThrowNotImplementedException = 2,
ThrowNull = 3,
}
public static class CSharpFormatter {
public static string EscapeString(string s, bool escapeSingleQuote = false, bool escapeDoubleQuote = false) {}
public static string FormatAccessibility(Accessibility accessibility) {}
public static string FormatParameter(ParameterInfo p, NullabilityInfoContext? nullabilityInfoContext, bool typeWithNamespace = true, bool useDefaultLiteral = false) {}
public static string FormatParameter(ParameterInfo p, NullabilityInfoContext? nullabilityInfoContext, object? nullabilityInfoContextLockObject, bool typeWithNamespace = true, bool useDefaultLiteral = false) {}
public static string FormatParameter(ParameterInfo p, bool typeWithNamespace = true, bool useDefaultLiteral = false) {}
public static string FormatParameterList(MethodBase m, NullabilityInfoContext? nullabilityInfoContext, bool typeWithNamespace = true, bool useDefaultLiteral = false) {}
public static string FormatParameterList(MethodBase m, NullabilityInfoContext? nullabilityInfoContext, object? nullabilityInfoContextLockObject, bool typeWithNamespace = true, bool useDefaultLiteral = false) {}
public static string FormatParameterList(MethodBase m, bool typeWithNamespace = true, bool useDefaultLiteral = false) {}
public static string FormatParameterList(ParameterInfo[] parameterList, NullabilityInfoContext? nullabilityInfoContext, bool typeWithNamespace = true, bool useDefaultLiteral = false) {}
public static string FormatParameterList(ParameterInfo[] parameterList, NullabilityInfoContext? nullabilityInfoContext, object? nullabilityInfoContextLockObject, bool typeWithNamespace = true, bool useDefaultLiteral = false) {}
public static string FormatParameterList(ParameterInfo[] parameterList, bool typeWithNamespace = true, bool useDefaultLiteral = false) {}
public static string FormatSpecialNameMethod(MethodBase methodOrConstructor, out MethodSpecialName nameType) {}
public static string FormatTypeName(this EventInfo ev, NullabilityInfoContext? nullabilityInfoContext, bool typeWithNamespace = true, bool withDeclaringTypeName = true, bool translateLanguagePrimitiveType = true) {}
public static string FormatTypeName(this EventInfo ev, NullabilityInfoContext? nullabilityInfoContext, object? nullabilityInfoContextLockObject, bool typeWithNamespace = true, bool withDeclaringTypeName = true, bool translateLanguagePrimitiveType = true) {}
public static string FormatTypeName(this EventInfo ev, bool typeWithNamespace = true, bool withDeclaringTypeName = true, bool translateLanguagePrimitiveType = true) {}
public static string FormatTypeName(this FieldInfo f, NullabilityInfoContext? nullabilityInfoContext, bool typeWithNamespace = true, bool withDeclaringTypeName = true, bool translateLanguagePrimitiveType = true) {}
public static string FormatTypeName(this FieldInfo f, NullabilityInfoContext? nullabilityInfoContext, object? nullabilityInfoContextLockObject, bool typeWithNamespace = true, bool withDeclaringTypeName = true, bool translateLanguagePrimitiveType = true) {}
public static string FormatTypeName(this FieldInfo f, bool typeWithNamespace = true, bool withDeclaringTypeName = true, bool translateLanguagePrimitiveType = true) {}
public static string FormatTypeName(this ParameterInfo p, NullabilityInfoContext? nullabilityInfoContext, bool typeWithNamespace = true, bool withDeclaringTypeName = true, bool translateLanguagePrimitiveType = true) {}
public static string FormatTypeName(this ParameterInfo p, NullabilityInfoContext? nullabilityInfoContext, object? nullabilityInfoContextLockObject, bool typeWithNamespace = true, bool withDeclaringTypeName = true, bool translateLanguagePrimitiveType = true) {}
public static string FormatTypeName(this ParameterInfo p, bool typeWithNamespace = true, bool withDeclaringTypeName = true, bool translateLanguagePrimitiveType = true) {}
public static string FormatTypeName(this PropertyInfo p, NullabilityInfoContext? nullabilityInfoContext, bool typeWithNamespace = true, bool withDeclaringTypeName = true, bool translateLanguagePrimitiveType = true) {}
public static string FormatTypeName(this PropertyInfo p, NullabilityInfoContext? nullabilityInfoContext, object? nullabilityInfoContextLockObject, bool typeWithNamespace = true, bool withDeclaringTypeName = true, bool translateLanguagePrimitiveType = true) {}
public static string FormatTypeName(this PropertyInfo p, bool typeWithNamespace = true, bool withDeclaringTypeName = true, bool translateLanguagePrimitiveType = true) {}
public static string FormatTypeName(this Type t, ICustomAttributeProvider? attributeProvider = null, bool typeWithNamespace = true, bool withDeclaringTypeName = true, bool translateLanguagePrimitiveType = true) {}
public static string FormatUnboundTypeName(this Type t, bool typeWithNamespace = true, bool withDeclaringTypeName = true, bool translateLanguagePrimitiveType = true) {}
public static string FormatValueDeclaration(object? val, Type typeOfValue, bool typeWithNamespace = true, bool findConstantField = false, bool useDefaultLiteral = false) {}
public static bool IsLanguagePrimitiveType(Type t, [MaybeNullWhen(false)] out string? primitiveTypeName) {}
public static IEnumerable<string> ToNamespaceList(Type t) {}
public static IEnumerable<string> ToNamespaceList(Type t, bool translateLang...Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks version 1.8.0
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2026-02-05 update assembly version
- 2026-01-18 simplify trimming options
- 2026-01-18 mark IsAotCompatible false
Full changes
Full changes in this release:
diff --git a/src/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks.csproj b/src/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks.csproj
index 27c0afc..28eeef0 100644
--- a/src/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks.csproj
+++ b/src/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks.csproj
@@ -6,13 +6,13 @@ SPDX-License-Identifier: MIT
<PropertyGroup>
<TargetFrameworks>net10.0;net8.0</TargetFrameworks>
<RootNamespace>Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks</RootNamespace>
- <VersionPrefix>1.7.1</VersionPrefix>
+ <VersionPrefix>1.8.0</VersionPrefix>
<VersionSuffix></VersionSuffix>
<NoWarn>CS1591;$(NoWarn)</NoWarn> <!-- CS1591: Missing XML comment for publicly visible type or member 'Type_or_Member' -->
- <!-- trimming options -->
- <PublishTrimmed>false</PublishTrimmed>
- <EnableTrimAnalyzer>false</EnableTrimAnalyzer>
+ <!-- AOT and trimming options -->
+ <IsAotCompatible>false</IsAotCompatible>
+ <IsTrimmable>false</IsTrimmable>
<!-- required to include all dependencies to the package -->
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>Notes
Full Changelog: releases/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks-1.7.1...releases/Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks-1.8.0
Smdn.Reflection.ReverseGenerating.ListApi.Core version 1.6.0
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2026-02-05 bump Smdn.Reflection.ReverseGenerating up to 1.5.0
- 2026-02-05 update assembly version
- 2026-02-05 remove dead comment
- 2026-02-05 catch up to the base library changes
- 2026-02-05 add support for extension members introduced in C# 14
- 2026-01-25 add ApiListWriterOptions.WriterOptions.ExcludeFixedBufferFieldTypes to be able to exclude compiler generated types for fixed buffer fields
- 2026-01-25 improve AttributeFilter.Default to ignore more attributes of System.Runtime.CompilerServices namespace
- 2026-01-22 simplify generating declaration
- 2026-01-22 refactor
- 2026-01-22 ensure to restore nullable annotations for types right after the delegate declarations
- 2026-01-18 simplify trimming options
- 2026-01-18 mark IsAotCompatible false
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net10.0.apilist.cs b/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net10.0.apilist.cs
index 6f7d008..8755ffa 100644
--- a/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net10.0.apilist.cs
+++ b/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net10.0.apilist.cs
@@ -1,104 +1,106 @@
-// Smdn.Reflection.ReverseGenerating.ListApi.Core.dll (Smdn.Reflection.ReverseGenerating.ListApi.Core-1.5.1)
+// Smdn.Reflection.ReverseGenerating.ListApi.Core.dll (Smdn.Reflection.ReverseGenerating.ListApi.Core-1.6.0)
// Name: Smdn.Reflection.ReverseGenerating.ListApi.Core
-// AssemblyVersion: 1.5.1.0
-// InformationalVersion: 1.5.1+194cfa4277b6b9f373b1067798cdb665abbcc81f
+// AssemblyVersion: 1.6.0.0
+// InformationalVersion: 1.6.0+6287d2840011d0affcb50c6129b0ccffb5f13e1d
// TargetFramework: .NETCoreApp,Version=v10.0
// Configuration: Release
-// Metadata: IsTrimmable=True
// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Reflection.ReverseGenerating
// Metadata: RepositoryBranch=main
-// Metadata: RepositoryCommit=194cfa4277b6b9f373b1067798cdb665abbcc81f
+// Metadata: RepositoryCommit=6287d2840011d0affcb50c6129b0ccffb5f13e1d
// Referenced assemblies:
// Microsoft.Extensions.DependencyModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
-// Smdn.Fundamental.Reflection, Version=3.7.0.0, Culture=neutral
-// Smdn.Reflection.ReverseGenerating, Version=1.4.0.0, Culture=neutral
+// Smdn.Fundamental.Reflection, Version=3.10.0.0, Culture=neutral
+// Smdn.Reflection.ReverseGenerating, Version=1.5.0.0, Culture=neutral
// System.Collections, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Linq, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Reflection.Metadata, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Reflection.MetadataLoadContext, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime.InteropServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime.Loader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Reflection;
using System.Runtime.Versioning;
using Microsoft.Extensions.Logging;
using Smdn.Reflection.ReverseGenerating;
using Smdn.Reflection.ReverseGenerating.ListApi;
namespace Smdn.Reflection.ReverseGenerating.ListApi {
public class ApiListWriter {
public ApiListWriter(TextWriter baseWriter, Assembly assembly, ApiListWriterOptions? options) {}
public ApiListWriter(TextWriter baseWriter, Assembly assembly, ApiListWriterOptions? options, ILogger? logger) {}
public TextWriter BaseWriter { get; }
[Obsolete("Use WriteHeader")]
public void WriteAssemblyInfoHeader() {}
public void WriteExportedTypes() {}
public void WriteFooter() {}
public void WriteHeader() {}
}
public class ApiListWriterOptions : GeneratorOptions {
public class WriterOptions {
public WriterOptions() {}
+ public bool ExcludeFixedBufferFieldTypes { get; set; }
public bool OmitCompilerGeneratedRecordEqualityMethods { get; set; }
+ public bool OrderExtensionDeclarationsFirst { get; set; }
public bool OrderStaticMembersFirst { get; set; }
+ public bool ReconstructExtensionDeclarations { get; set; }
public bool ThrowIfForwardedTypesCouldNotLoaded { get; set; }
public bool WriteAssemblyInfo { get; set; }
public bool WriteEmbeddedResources { get; set; }
public bool WriteFooter { get; set; }
public bool WriteHeader { get; set; }
public bool WriteNullableAnnotationDirective { get; set; }
public bool WriteReferencedAssemblies { get; set; }
}
public ApiListWriterOptions() {}
public ApiListWriterOptions.WriterOptions Writer { get; }
}
public static class AssemblyExtensions {
[return: MaybeNull] public static TValue GetAssemblyMetadataAttributeValue<TAssemblyMetadataAttribute, TValue>(this Assembly assm) where TAssemblyMetadataAttribute : Attribute {}
}
public sealed class AssemblyFileNotFoundException : FileNotFoundException {
public AssemblyFileNotFoundException() {}
public AssemblyFileNotFoundException(string? message) {}
public AssemblyFileNotFoundException(string? message, Exception? innerException) {}
public AssemblyFileNotFoundException(string? message, string? fileName, Exception? innerException) {}
}
public static class AssemblyLoader {
[return: MaybeNull] public static TResult UsingAssembly<TArg, TResult>(FileInfo assemblyFile, bool loadIntoReflectionOnlyContext, TArg arg, Func<Assembly, TArg, TResult>? actionWithLoadedAssembly, out WeakReference? context, ILogger? logger = null) {}
[return: MaybeNull] public static TResult UsingAssembly<TArg, TResult>(Stream assemblyStream, string componentAssemblyPath, bool loadIntoReflectionOnlyContext, TArg arg, Func<Assembly, TArg, TResult> actionWithLoadedAssembly, out WeakReference? context, ILogger? logger = null) {}
}
public static class AttributeFilter {
public static readonly AttributeTypeFilter Default; // = "Smdn.Reflection.ReverseGenerating.AttributeTypeFilter"
}
public static class FrameworkMonikers {
public static bool TryGetMoniker(FrameworkName frameworkName, string? osSpecifier, [NotNullWhen(true)] out string? frameworkMoniker) {}
}
public class MemberInfoComparer : IComparer<MemberInfo> {
public static readonly MemberInfoComparer Default; // = "Smdn.Reflection.ReverseGenerating.ListApi.MemberInfoComparer"
public static readonly MemberInfoComparer StaticMembersFirst; // = "Smdn.Reflection.ReverseGenerating.ListApi.MemberInfoComparer"
public MemberInfoComparer(int orderOfStaticMember, int orderOfInstanceMember) {}
public int Compare(MemberInfo? x, MemberInfo? y) {}
public int GetOrder(MemberInfo? member) {}
}
}
-// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.7.1.0.
-// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.5.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.8.0.0.
+// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.6.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net8.0.apilist.cs b/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi.Core-net8.0.apilist.cs
index 6109926..87a9230 100644
--- a/doc/api-list/Smdn.Reflection.ReverseGenerating.ListApi.Core/Sm...Smdn.Reflection.ReverseGenerating.ListApi version 1.6.0
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2026-02-05 bump Smdn.Reflection.ReverseGenerating.ListApi.Core up to 1.6.0
- 2026-02-05 update assembly version
- 2026-02-05 add option '--generate-unsafe-types' to support for generating 'unsafe' type modifiers and 'fixed' fields
- 2026-02-05 add option '--generate-extension-members' to enable reverse-generating extension members related declarations
- 2026-02-05 remove implementations relevant to FEATURE_BUILD_PROJ
- 2026-01-18 mark IsAotCompatible false
- 2026-01-10 change the output directory of the auto-generated code to BaseIntermediateOutputPath to avoid warning CS2002
Full changes
Full changes in this release:
diff --git a/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi.Build/MSBuildExePath.cs b/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi.Build/MSBuildExePath.cs
deleted file mode 100644
index 98d1f0e..0000000
--- a/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi.Build/MSBuildExePath.cs
+++ /dev/null
@@ -1,154 +0,0 @@
-// SPDX-FileCopyrightText: 2021 smdn <smdn@smdn.jp>
-// SPDX-License-Identifier: MIT
-#pragma warning disable CA1848
-
-#if FEATURE_BUILD_PROJ
-using System;
-using System.IO;
-using System.Text.RegularExpressions;
-
-using Microsoft.Extensions.Logging;
-
-using Smdn.OperatingSystem;
-
-namespace Smdn.Reflection.ReverseGenerating.ListApi.Build;
-
-public static partial class MSBuildExePath {
- private static string JoinPath(string path1, string path2)
- {
-#pragma warning disable SA1114
-#if SYSTEM_IO_PATH_JOIN
- return Path.Join(
-#else
- return Path.Combine(
-#endif
-#pragma warning restore SA1114
- path1, path2
- );
- }
-
-#if false
- private const string patternVersion = @"(?<version>[0-9]+\.[0-9]+\.[0-9]+)";
- private const string patternVersionSuffix = @"(?<version_suffix>(?:preview|rc)[0-9\.\-]+)";
- private const string patternRootPath = @"(?<root_path>[^\]]+)";
- private static readonly Regex regexSdkPath = new Regex(
- @$"^(?<version_full>{patternVersion}(\-{patternVersionSuffix})?) \[{patternRootPath}\]\r?$",
- RegexOptions.Multiline | RegexOptions.CultureInvariant | RegexOptions.Compiled
- );
-
- static IEnumerable<(
- string versionFull,
- Version version,
- string versionSuffix,
- string path
- )> GetSdkPaths()
- {
- foreach (Match match in regexSdkPath.Matches(Shell.Execute("dotnet --list-sdks"))) {
- if (Version.TryParse(match.Groups["version"].Value, out var version)) {
- yield return (
- match.Groups["version_full"].Value,
- version,
- match.Groups["version_suffix"].Value,
- JoinPath(match.Groups["root_path"].Value, match.Groups["version_full"].Value)
- );
- }
- }
- }
-#endif
-
- private const string SdkBasePathRegexPattern = @"^\s*Base Path:\s+(?<base_path>.+)$";
-
-#if SYSTEM_TEXT_REGULAREXPRESSIONS_GENERATEDREGEXATTRIBUTE
- [GeneratedRegex(SdkBasePathRegexPattern, RegexOptions.Multiline | RegexOptions.CultureInvariant | RegexOptions.Compiled)]
- private static partial Regex GetRegexSdkBasePath();
-#else
- private static readonly Regex RegexSdkBasePath = new(
- SdkBasePathRegexPattern,
- RegexOptions.Multiline | RegexOptions.CultureInvariant | RegexOptions.Compiled
- );
-#endif
-
- private static string? GetSdkBasePath(out string? sdkVersion)
- {
- sdkVersion = default;
-
-#if SYSTEM_TEXT_REGULAREXPRESSIONS_GENERATEDREGEXATTRIBUTE
- var match = GetRegexSdkBasePath().Match(Shell.Execute("dotnet --info"));
-#else
- var match = RegexSdkBasePath.Match(Shell.Execute("dotnet --info"));
-#endif
-
- if (match.Success) {
- var basePath = match.Groups["base_path"].Value.TrimEnd();
-
- sdkVersion = new DirectoryInfo(basePath).Name;
-
- return basePath;
- }
-
- return null;
- }
-
- private static string GetMSBuildExePath(out string? sdkVersion)
- {
-#if true
- sdkVersion = default;
-
- var sdkBasePath = GetSdkBasePath(out sdkVersion) ?? throw new InvalidOperationException("could not get SDK base path");
- var msbuildExePath = JoinPath(
- sdkBasePath,
- "MSBuild.dll" // .NET SDK always ships MSBuild executables with the extension 'dll'
- );
-
- if (!File.Exists(msbuildExePath))
- throw new InvalidOperationException("MSBuild not found");
-
- return msbuildExePath;
-#else
- static IEnumerable<(
- string sdkVersionFull,
- Version sdkVersion,
- string sdkVersionSuffix,
- string sdkPath,
- string msbuildPath
- )> EnumerateMSBuildPath(
- (string versionFull, Version version, string versionSuffix, string path) sdk
- )
- {
- yield return (
- sdk.versionFull,
- sdk.version,
- sdk.versionSuffix,
- sdk.path,
- JoinPath(
- sdk.path,
- "MSBuild.dll" // .NET SDK always ships MSBuild executables with the extension 'dll'
- )
- );
- }
-
- sdkVersion = default;
-
- (var msbuildExePath, sdkVersion) = GetSdkPaths()
- .SelectMany(EnumerateMSBuildPath)
- .Where(static p => string.IsNullOrEmpty(p.sdkVersionSuffix)) // except preview
- .Where(static p => File.Exists(p.msbuildPath))
- .OrderByDescending(static p => p.sdkVersion) // newest one
- .Select(static p => (p.msbuildPath, p.sdkVersionFull))
- .FirstOrDefault();
-
- return msbuildExePath ?? throw new InvalidOperationException("MSBuild not found");
-#endif
- }
-
- public static void EnsureSetEnvVar(ILogger? logger = null)
- {
- const string MSBUILD_EXE_PATH = nameof(MSBUILD_EXE_PATH);
-
- if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable(MSBUILD_EXE_PATH)))
- Environment.SetEnvironmentVariable(MSBUILD_EXE_PATH, GetMSBuildExePath(out _));
-
- logger?.LogDebug("{MSBUILD_EXE_PATH}: {ENVVAR_MSBUILD_EXE_PATH}", MSBUILD_EXE_PATH, Environment.GetEnvironmentVariable(MSBUILD_EXE_PATH));
- }
-}
-#endif
diff --git a/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi.Build/ProjectBuilder.cs b/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi.Build/ProjectBuilder.cs
deleted file mode 100644
index 8349e34..0000000
--- a/src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi.Build/ProjectBuilder.cs
+++ /dev/null
@@ -1,141 +0,0 @@
-// SPDX-FileCopyrightText: 2021 smdn <smdn@smdn.jp>
-// SPDX-License-Identifier: MIT
-#pragma warning disable CA1848
-
-#if FEATURE_BUILD_PROJ
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Runtime.InteropServices;
-
-using Microsoft.Build.Evaluation;
-using Microsoft.Build.Execution;
-using Microsoft.Build.Framework;
-using Microsoft.Build.Logging;
-using Microsoft.Extensions.Logging;
-
-namespace Smdn.Reflection.ReverseGenerating.ListApi.Build;
-
-public static class ProjectBuilder {
-#pragma warning disable CA1034, CA1724
- public class Options {
-#pragma warning restore CA1034, CA1724
- public const string DefaultConfiguration = "Debug";
-
- public string? Configuration { get; init; } = DefaultConfiguration;
- public string? TargetFramework { get; init; } = null;
- // public string? OS { get; init; }
- public string? RuntimeIdentifier { get; init; } = null;
-#pragma warning disable CA1819
- public string[]? TargetsToBuild { get; init; } = new[] { "Restore", "Build" };
-#pragma warning restore CA1819
- public LoggerVerbosity LoggerVerbosity { get; init; } = LoggerVerbosity.Minimal;
- }
-
- public static IEnumerable<FileInfo> Build(
- FileInfo projectFile,
- Options? options = null,
- Microsoft.Extensions.Logging.ILogger? logger = null
- )
- {
- if (projectFile is null)
- throw new ArgumentNullException(nameof(projectFile));
-
- options ??= new();
-
- var globalProps = new Dictionary<string, string>();
-
- if (!string.IsNullOrEmpty(options.Configuration))
- globalProps["Configuration"] = options.Configuration;
- if (!string.IsNullOrEmpty(options.TargetFramework))
- globalProps["TargetFramework"] = options.TargetFramework;
-#if false
- if (!string.IsNullOrEmpty(options.OS))
- globalProps["OS"] = options.OS;
-#endif
- if (!string.IsNullOrEmpty(options.RuntimeIdentifier))
- globalProps["RuntimeIdentifier"] = options.RuntimeIdentifier;
-
- logger?.LogDebug("Build requested");
- logger?.LogDebug(" project: {ProjectFile}", projectFile);
-
- logger?.LogDebug(" targets: {Targets}", string.Join(";", options.TargetsToBuild ?? Array.Empty<string>()));
-
- logger?.LogDebug(" global properties:");
-
- foreach (var globalProp in globalProps) {
- logger?.LogDebug(" {GlobalPr...