Skip to content

Commit 2ed09e7

Browse files
committed
add ApiListWriterOptions.WriterOptions.WriteEmbeddedResources
1 parent 1d299bc commit 2ed09e7

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

src/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi/ApiListWriter.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,24 @@ public void WriteAssemblyInfoHeader()
3232
BaseWriter.WriteLine($"// InformationalVersion: {assembly.GetAssemblyMetadataAttributeValue<AssemblyInformationalVersionAttribute, string>()}");
3333
BaseWriter.WriteLine($"// TargetFramework: {assembly.GetAssemblyMetadataAttributeValue<TargetFrameworkAttribute, string>()}");
3434
BaseWriter.WriteLine($"// Configuration: {assembly.GetAssemblyMetadataAttributeValue<AssemblyConfigurationAttribute, string>()}");
35+
36+
var manifestResourceNames = assembly.GetManifestResourceNames();
37+
38+
if (options.Writer.WriteEmbeddedResources && 0 < manifestResourceNames.Length) {
39+
BaseWriter.WriteLine("// Embedded resources:");
40+
41+
foreach (var name in manifestResourceNames) {
42+
var info = assembly.GetManifestResourceInfo(name);
43+
44+
if (info is not null && info.ResourceLocation.HasFlag(ResourceLocation.Embedded)) {
45+
using var stream = assembly.GetManifestResourceStream(name);
46+
47+
var length = stream?.Length ?? 0L;
48+
49+
BaseWriter.WriteLine($"// {name} ({length:N0} bytes, {info.ResourceLocation})");
50+
}
51+
}
52+
}
3553
}
3654

3755
public void WriteExportedTypes()

src/Smdn.Reflection.ReverseGenerating.ListApi.Core/Smdn.Reflection.ReverseGenerating.ListApi/ApiListWriterOptions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ public class ApiListWriterOptions : GeneratorOptions {
88
public class WriterOptions {
99
public bool OrderStaticMembersFirst { get; set; } = false;
1010
public bool WriteNullableAnnotationDirective { get; set; } = true;
11+
public bool WriteEmbeddedResources { get; set; } = true;
1112
}
1213
}

0 commit comments

Comments
 (0)