diff --git a/README.md b/README.md
index c6832f385..5e19e5d89 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
-# RSCG - 269 Examples of Roslyn Source Code Generators / 16 created by Microsoft /
+# RSCG - 270 Examples of Roslyn Source Code Generators / 16 created by Microsoft /
-The RSCG_Examples repository is a comprehensive documentation system that automatically processes and showcases 269 Roslyn Source Code Generator (RSCG) examples. The system transforms individual RSCG projects into structured documentation with code examples and cross-referenced content with a searchable website and code example exports.
+The RSCG_Examples repository is a comprehensive documentation system that automatically processes and showcases 270 Roslyn Source Code Generator (RSCG) examples. The system transforms individual RSCG projects into structured documentation with code examples and cross-referenced content with a searchable website and code example exports.
This system serves as both a learning resource for .NET developers interested in source generators and an automated pipeline for maintaining up-to-date documentation about the RSCG ecosystem
-## Latest Update : 2026-05-14 => 14 May 2026
+## Latest Update : 2026-05-15 => 15 May 2026
If you want to see examples with code, please click ***[List V2](https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG)***
@@ -24,8 +24,30 @@ If you want to be notified each time I add a new RSCG example , please click htt
## Content
-Those are the 269 Roslyn Source Code Generators that I have tested you can see and download source code example.
+Those are the 270 Roslyn Source Code Generators that I have tested you can see and download source code example.
( including 16 from Microsoft )
+### 270. [AssemblyMetadata.Generators](https://ignatandrei.github.io/RSCG_Examples/v2/docs/AssemblyMetadata.Generators) , in the [EnhancementProject](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementproject) category
+
+Generated on : 2026-05-15 => 15 May 2026
+
+
+ Expand
+
+
+
+Author: LoreSoft
+
+Source generator to expose assembly attributes as string constants
+
+Nuget: [https://www.nuget.org/packages/AssemblyMetadata.Generators/](https://www.nuget.org/packages/AssemblyMetadata.Generators/)
+
+
+Link: [https://ignatandrei.github.io/RSCG_Examples/v2/docs/AssemblyMetadata.Generators](https://ignatandrei.github.io/RSCG_Examples/v2/docs/AssemblyMetadata.Generators)
+
+Source: [https://github.com/loresoft/AssemblyMetadata.Generators](https://github.com/loresoft/AssemblyMetadata.Generators)
+
+
+
### 269. [LinkDotNet.Enumeration](https://ignatandrei.github.io/RSCG_Examples/v2/docs/LinkDotNet.Enumeration) , in the [Enum](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enum) category
Generated on : 2026-05-14 => 14 May 2026
diff --git a/later.md b/later.md
index 97905fcae..a38a35e21 100644
--- a/later.md
+++ b/later.md
@@ -1,6 +1,6 @@
# Just later
-## Latest Update : 2026-05-14 => 14 May 2026
+## Latest Update : 2026-05-15 => 15 May 2026
diff --git a/v2/.tours/AssemblyMetadata.Generators.tour b/v2/.tours/AssemblyMetadata.Generators.tour
new file mode 100644
index 000000000..50c6e0a4f
--- /dev/null
+++ b/v2/.tours/AssemblyMetadata.Generators.tour
@@ -0,0 +1,30 @@
+
+{
+ "$schema": "https://aka.ms/codetour-schema",
+ "title": "AssemblyMetadata.Generators",
+ "steps":
+ [
+ {
+ "file": "rscg_examples/AssemblyMetadata.Generators/src/DemoMeta/DemoMeta.csproj",
+ "description": "First, we add Nuget [AssemblyMetadata.Generators](https://www.nuget.org/packages/AssemblyMetadata.Generators/) in csproj ",
+ "pattern": "AssemblyMetadata.Generators"
+ }
+
+ ,{
+ "file": "rscg_examples/AssemblyMetadata.Generators/src/DemoMeta/Program.cs",
+ "description": "File Program.cs \r\n>> dotnet run --project rscg_examples/AssemblyMetadata.Generators/src/DemoMeta/DemoMeta.csproj ",
+ "pattern": "this is the code"
+ }
+
+
+ ,{
+ "file": "rscg_examples/AssemblyMetadata.Generators/src/DemoMeta/obj/GX/AssemblyMetadata.Generators/AssemblyMetadata.Generators.AssemblyMetadataGenerator/AssemblyMetadata.g.cs",
+ "description": "Generated File 1 from 1 : AssemblyMetadata.g.cs ",
+ "line": 1
+ }
+
+ ],
+
+ "ref": "main"
+
+}
\ No newline at end of file
diff --git a/v2/Generator/all.csv b/v2/Generator/all.csv
index 35c91bf87..4910b0b0d 100644
--- a/v2/Generator/all.csv
+++ b/v2/Generator/all.csv
@@ -267,3 +267,5 @@ Nr,Key,Source,Category
266,Aigamo.MatchGenerator, https://github.com/ycanardeau/MatchGenerator,Enum
267,Maestria.TypeProviders, https://github.com/MaestriaNet/TypeProviders,FilesToCode
268,GenerateDispose, https://github.com/ItaiTzur76/GenerateDispose,Disposer
+269,LinkDotNet.Enumeration, https://github.com/linkdotnet/Enumeration,Enum
+270,AssemblyMetadata.Generators, https://github.com/loresoft/AssemblyMetadata.Generators,EnhancementProject
diff --git a/v2/RSCGExamplesData/GeneratorDataRec.json b/v2/RSCGExamplesData/GeneratorDataRec.json
index 8e6f2e9ec..2ef016942 100644
--- a/v2/RSCGExamplesData/GeneratorDataRec.json
+++ b/v2/RSCGExamplesData/GeneratorDataRec.json
@@ -1630,5 +1630,11 @@
"Category": 19,
"dtStart": "2026-05-14T00:00:00",
"show": true
- }
+ },
+ {
+ "ID":"AssemblyMetadata.Generators",
+ "Category": 1,
+ "dtStart": "2026-05-15T00:00:00",
+ "show": true
+ },
]
\ No newline at end of file
diff --git a/v2/book/examples/AssemblyMetadata.Generators.html b/v2/book/examples/AssemblyMetadata.Generators.html
new file mode 100644
index 000000000..6e07b122b
--- /dev/null
+++ b/v2/book/examples/AssemblyMetadata.Generators.html
@@ -0,0 +1,53 @@
+
+
RSCG nr 270 : AssemblyMetadata.Generators
+
+Info
+Nuget : https://www.nuget.org/packages/AssemblyMetadata.Generators/
+
+You can find more details at : https://github.com/loresoft/AssemblyMetadata.Generators
+
+Author :LoreSoft
+
+Source: https://github.com/loresoft/AssemblyMetadata.Generators
+
+About
+
+Generating assembly metadata attributes at compile time.
+
+
+ How to use
+
+
+
+
+This was for me the starting code
+
+
+ I have coded the file Program.cs
+
+
+
+ And here are the generated files
+
+
+ The file generated is AssemblyMetadata.g.cs
+
+
+
+
+ You can download the code and this page as pdf from
+
+ https://ignatandrei.github.io/RSCG_Examples/v2/docs/AssemblyMetadata.Generators
+
+
+
+
+
+ You can see the whole list at
+
+ https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG
+
+
+
diff --git a/v2/book/examples/GenerateDispose.html b/v2/book/examples/GenerateDispose.html
index 47804660d..31af2b595 100644
--- a/v2/book/examples/GenerateDispose.html
+++ b/v2/book/examples/GenerateDispose.html
@@ -12,7 +12,7 @@ Info
About
-Generating the Dispose method for a class that implements IDisposable.
+GenerateDispose for boilerplate reduction for IDisposable pattern### PurposeA Roslyn source generator that replaces the 10+ lines of IDisposable boilerplate code with a single attribute.It also automatically adapts the generated pattern when the class modifiers change (e.g. sealed to non-sealed).### How to Define```csharp showLineNumbers[GenerateDispose.SourceGenerators.GenerateDispose(nameof(Drop))]partial class DALDB : IDisposable // : IDisposable is optional!{ private ConnectionDB cn; private ConnectionDB cn1; public DALDB() { cn = new ConnectionDB(); cn1 = new ConnectionDB(); } public void Drop() // Your custom disposal logic { cn.Dispose(); cn1.Dispose(); }}```- The class must be partial- Pass nameof(YourDisposeMethod) to the attribute - the method must be callable with no arguments### What Gets Generated- public void Dispose() (thread-safe, calls your method)- A private int _isDisposed field for double-dispose protection- Adapts to sealed vs non-sealed automatically (private vs protected virtual)### How to Use```csharp showLineNumbersusing (var db = new DALDB()){ // use db...} // Dispose() called automatically```### Key Benefits- 10+ lines of boilerplate replaced by 1 attribute- sealed changes auto-adapt the Dispose pattern- No manual IDisposable wiring needed
How to use
diff --git a/v2/book/examples/LinkDotNet.Enumeration.html b/v2/book/examples/LinkDotNet.Enumeration.html
index 8aafe2698..21b30dbba 100644
--- a/v2/book/examples/LinkDotNet.Enumeration.html
+++ b/v2/book/examples/LinkDotNet.Enumeration.html
@@ -12,7 +12,7 @@ Info
About
-Generating enumeration from classes in C# with matching
+Good for replacing enum + switch patterns with string-based enumerations with exhaustive pattern matching.### PurposeA source code generator that creates string-based enumerations (similar to Java enums / DDD value objects) with exhaustive pattern matching, replacing enum + switch patterns.### How to Define[Enumeration(Casing.Preserve, "None", "Dacia", "Tesla", "BMW", "Mercedes")]public sealed partial record CarTypes;### How to UseCarTypes.TryParse("BMW", null, out var car);car.Match(onBMW: () => "this is bmw", onDacia: () => "this is dacia", ...);### Key Features- Exhaustive matching: Match() requires all values- Create / TryCreate: throws vs returns bool- IParsable: Minimal APIs & Model Binding- Implicit string conversion- CarTypes.All returns FrozenSet of CarTypes- JSON: GenerateJsonConverter = true
How to use
diff --git a/v2/book/list.html b/v2/book/list.html
index 5c6342aa6..fcf4f92b2 100644
--- a/v2/book/list.html
+++ b/v2/book/list.html
@@ -17,7 +17,7 @@
-This is the list of 269 RSCG with examples =>
+This is the list of 270 RSCG with examples =>
diff --git a/v2/book/pandocHTML.yaml b/v2/book/pandocHTML.yaml
index fce328a0c..fe9f8e760 100644
--- a/v2/book/pandocHTML.yaml
+++ b/v2/book/pandocHTML.yaml
@@ -283,6 +283,7 @@ input-files:
- examples/Maestria.TypeProviders.html
- examples/GenerateDispose.html
- examples/LinkDotNet.Enumeration.html
+- examples/AssemblyMetadata.Generators.html
# or you may use input-file: with a single value
# defaults:
diff --git a/v2/docFind.json b/v2/docFind.json
index 03b462871..2df539039 100644
--- a/v2/docFind.json
+++ b/v2/docFind.json
@@ -1612,5 +1612,11 @@
"category": "Enum",
"href": "/RSCG_Examples/v2/docs/LinkDotNet.Enumeration/",
"body": "Source code generated enumeration with completeness!"
+ },
+ {
+ "title": "AssemblyMetadata.Generators",
+ "category": "EnhancementProject",
+ "href": "/RSCG_Examples/v2/docs/AssemblyMetadata.Generators/",
+ "body": "Source generator to expose assembly attributes as string constants"
}
]
\ No newline at end of file
diff --git a/v2/rscg_examples/AssemblyMetadata.Generators/description.json b/v2/rscg_examples/AssemblyMetadata.Generators/description.json
new file mode 100644
index 000000000..c52d6a737
--- /dev/null
+++ b/v2/rscg_examples/AssemblyMetadata.Generators/description.json
@@ -0,0 +1,22 @@
+{
+ "generator":{
+ "name":"AssemblyMetadata.Generators",
+ "nuget":[
+ "https://www.nuget.org/packages/AssemblyMetadata.Generators/"
+ ],
+ "link":"https://github.com/loresoft/AssemblyMetadata.Generators",
+ "author":"LoreSoft",
+ "source":"https://github.com/loresoft/AssemblyMetadata.Generators"
+ },
+ "data":{
+ "goodFor":["Generating assembly metadata attributes at compile time."],
+ "csprojDemo":"DemoMeta.csproj",
+ "csFiles":["Program.cs"],
+ "excludeDirectoryGenerated":[""],
+ "includeAdditionalFiles":[""]
+ },
+ "links":{
+ "blog":"",
+ "video":""
+ }
+}
\ No newline at end of file
diff --git a/v2/rscg_examples/AssemblyMetadata.Generators/nuget.txt b/v2/rscg_examples/AssemblyMetadata.Generators/nuget.txt
new file mode 100644
index 000000000..65fdefe22
--- /dev/null
+++ b/v2/rscg_examples/AssemblyMetadata.Generators/nuget.txt
@@ -0,0 +1 @@
+Source generator to expose assembly attributes as string constants
\ No newline at end of file
diff --git a/v2/rscg_examples/AssemblyMetadata.Generators/readme.txt b/v2/rscg_examples/AssemblyMetadata.Generators/readme.txt
new file mode 100644
index 000000000..c1bc92400
--- /dev/null
+++ b/v2/rscg_examples/AssemblyMetadata.Generators/readme.txt
@@ -0,0 +1,51 @@
+# AssemblyMetadata.Generators
+
+Source generator to expose assembly attributes as string constants.
+
+[](https://github.com/loresoft/AssemblyMetadata.Generators/actions)
+
+[](https://www.nuget.org/packages/AssemblyMetadata.Generators/)
+
+[](https://coveralls.io/github/loresoft/AssemblyMetadata.Generators?branch=main)
+
+### Usage
+
+#### Add package
+
+Add the nuget package project to your projects.
+
+`dotnet add package AssemblyMetadata.Generators`
+
+### Generated
+
+This source generator creates an internal partial class called `ThisAssembly` with all the assembly level attributes converted to string constants
+
+```c#
+internal static partial class ThisAssembly
+{
+ public const string TargetFramework = ".NETCoreApp,Version=v7.0";
+ public const string Company = "LoreSoft";
+ public const string Configuration = "Debug";
+ public const string Copyright = "Copyright © 2023 LoreSoft";
+ public const string Description = "Source generator to expose assembly attributes as string constants";
+ public const string FileVersion = "1.0.0.0";
+ public const string InformationalVersion = "1.0.0";
+ public const string Product = "AssemblyMetadata.Generators.Tests";
+ public const string Title = "AssemblyMetadata.Generators.Tests";
+ public const string Version = "1.0.0.0";
+ public const string RepositoryUrl = "https://github.com/loresoft/AssemblyMetadata.Generators";
+ public const string NeutralResourcesLanguage = "en-US";
+}
+```
+
+### Namespace
+
+Set the `ThisAssemblyNamespace` MSBuild property to set the namespace of the generated `ThisAssembly` class. Otherwise, it will be in the global namespace.
+
+Put `ThisAssembly` in the projects root namespace.
+
+```xml
+
+ $(RootNamespace)
+
+```
diff --git a/v2/rscg_examples/AssemblyMetadata.Generators/src/DemoMeta.slnx b/v2/rscg_examples/AssemblyMetadata.Generators/src/DemoMeta.slnx
new file mode 100644
index 000000000..3f53e7d73
--- /dev/null
+++ b/v2/rscg_examples/AssemblyMetadata.Generators/src/DemoMeta.slnx
@@ -0,0 +1,3 @@
+
+
+
diff --git a/v2/rscg_examples/AssemblyMetadata.Generators/src/DemoMeta/DemoMeta.csproj b/v2/rscg_examples/AssemblyMetadata.Generators/src/DemoMeta/DemoMeta.csproj
new file mode 100644
index 000000000..ed31399fc
--- /dev/null
+++ b/v2/rscg_examples/AssemblyMetadata.Generators/src/DemoMeta/DemoMeta.csproj
@@ -0,0 +1,18 @@
+
+
+
+ Exe
+ net10.0
+ enable
+ enable
+
+
+
+
+
+
+ true
+ $(BaseIntermediateOutputPath)\GX
+
+
diff --git a/v2/rscg_examples/AssemblyMetadata.Generators/src/DemoMeta/Program.cs b/v2/rscg_examples/AssemblyMetadata.Generators/src/DemoMeta/Program.cs
new file mode 100644
index 000000000..972cc3468
--- /dev/null
+++ b/v2/rscg_examples/AssemblyMetadata.Generators/src/DemoMeta/Program.cs
@@ -0,0 +1,3 @@
+Console.WriteLine(ThisAssembly.Title);
+
+Console.WriteLine(ThisAssembly.TargetFramework);
diff --git a/v2/rscg_examples/AssemblyMetadata.Generators/video.json b/v2/rscg_examples/AssemblyMetadata.Generators/video.json
new file mode 100644
index 000000000..80616d0ee
--- /dev/null
+++ b/v2/rscg_examples/AssemblyMetadata.Generators/video.json
@@ -0,0 +1,39 @@
+{
+ "scriptName": "AssemblyMetadata.Generators",
+ "steps":
+[
+ {"typeStep":"exec","arg":"clipchamp.exe launch"},
+ {"typeStep":"text","arg": "Welcome to Roslyn Examples"},
+ {"typeStep":"text","arg":"If you want to see more examples , see List Of RSCG"},
+ {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG"},
+ {"typeStep":"text","arg": "My name is Andrei Ignat and I am deeply fond of Roslyn Source Code Generator. "},
+
+{"typeStep":"text","arg": "Today I will present AssemblyMetadata.Generators . Generating assembly metadata attributes at compile time. ."},
+{"typeStep":"browser","arg":"https://www.nuget.org/packages/AssemblyMetadata.Generators/"},
+{"typeStep":"text","arg": "The whole example is here"},
+{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/AssemblyMetadata.Generators"},
+{"typeStep":"text","arg": "You can download the code from here"},
+{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/AssemblyMetadata.Generators#download-example-net--c-"},
+{"typeStep":"text","arg":"Here is the code downloaded "},
+{"typeStep":"exec","arg":"explorer.exe /select,D:\\gth\\RSCG_Examples\\v2\\Generator.sln"},
+{"typeStep":"text","arg": "So , let's start the project with Visual Studio Code "},
+{"typeStep":"stepvscode","arg": "-n D:\\gth\\RSCG_Examples\\v2"},
+
+{"typeStep":"text","arg": "To use it ,you will put the Nuget AssemblyMetadata.Generators into the csproj "},
+
+{"typeStep":"stepvscode","arg": "-r -g D:\\gth\\RSCG_Examples\\v2\\rscg_examples\\AssemblyMetadata.Generators\\src\\DemoMeta\\DemoMeta.csproj"},
+
+{"typeStep":"text","arg": "And now I will show you an example of using AssemblyMetadata.Generators"},
+
+{"typeStep":"hide","arg": "now execute the tour in VSCode"},
+{"typeStep":"tour", "arg": "src/.tours/"},
+{"typeStep":"text","arg":" And I will execute the project"},
+{"typeStep":"showproj", "arg":"DemoMeta.csproj"},
+{"typeStep":"text","arg":" This concludes the project"},
+{"typeStep":"waitseconds","arg":"30"},
+{"typeStep":"text","arg": "Remember, you can download the code from here"},
+{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/AssemblyMetadata.Generators#download-example-net--c-",
+SpeakTest=" "},
+{"typeStep":"waitseconds","arg":"30"},
+]
+}
diff --git a/v2/rscg_examples_site/docs/Authors/LoreSoft.md b/v2/rscg_examples_site/docs/Authors/LoreSoft.md
index 76195b76a..3fb8eee2d 100644
--- a/v2/rscg_examples_site/docs/Authors/LoreSoft.md
+++ b/v2/rscg_examples_site/docs/Authors/LoreSoft.md
@@ -1,7 +1,9 @@
# Author : LoreSoft
-Number RSCG: 1
+Number RSCG: 2
1 [Injectio](/docs/Injectio) [](https://www.nuget.org/packages/Injectio/)  2023-08-17
+ 2 [AssemblyMetadata.Generators](/docs/AssemblyMetadata.Generators) [](https://www.nuget.org/packages/AssemblyMetadata.Generators/)  2026-05-15
+
diff --git a/v2/rscg_examples_site/docs/Categories/EnhancementProject.md b/v2/rscg_examples_site/docs/Categories/EnhancementProject.md
index 0b4b3e6f5..333c4bfdb 100644
--- a/v2/rscg_examples_site/docs/Categories/EnhancementProject.md
+++ b/v2/rscg_examples_site/docs/Categories/EnhancementProject.md
@@ -1,44 +1,46 @@
EnhancementProject
-Number RSCG: 20
+Number RSCG: 21
1 [AssemblyMetadata](/docs/AssemblyMetadata) [](https://www.nuget.org/packages/AssemblyMetadata/)  2026-04-02
- 2 [AssemblyVersionInfo](/docs/AssemblyVersionInfo) [](https://www.nuget.org/packages/AssemblyVersionInfo/)  2025-07-28
+ 2 [AssemblyMetadata.Generators](/docs/AssemblyMetadata.Generators) [](https://www.nuget.org/packages/AssemblyMetadata.Generators/)  2026-05-15
- 3 [AutoInvoke.Generator](/docs/AutoInvoke.Generator) [](https://www.nuget.org/packages/AutoInvoke.Generator/)  2024-03-03
+ 3 [AssemblyVersionInfo](/docs/AssemblyVersionInfo) [](https://www.nuget.org/packages/AssemblyVersionInfo/)  2025-07-28
- 4 [AutoSpectre](/docs/AutoSpectre) [](https://www.nuget.org/packages/AutoSpectre.SourceGeneration)[](https://www.nuget.org/packages/AutoSpectre)  2024-02-24
+ 4 [AutoInvoke.Generator](/docs/AutoInvoke.Generator) [](https://www.nuget.org/packages/AutoInvoke.Generator/)  2024-03-03
- 5 [BuildInfo](/docs/BuildInfo) [](https://www.nuget.org/packages/BuildInfo/)  2024-01-20
+ 5 [AutoSpectre](/docs/AutoSpectre) [](https://www.nuget.org/packages/AutoSpectre.SourceGeneration)[](https://www.nuget.org/packages/AutoSpectre)  2024-02-24
- 6 [Credfeto.Version.Information.Generator](/docs/Credfeto.Version.Information.Generator) [](https://www.nuget.org/packages/Credfeto.Version.Information.Generator/)  2024-11-05
+ 6 [BuildInfo](/docs/BuildInfo) [](https://www.nuget.org/packages/BuildInfo/)  2024-01-20
- 7 [Larcanum.GitInfo](/docs/Larcanum.GitInfo) [](https://www.nuget.org/packages/Larcanum.GitInfo/)  2025-01-17
+ 7 [Credfeto.Version.Information.Generator](/docs/Credfeto.Version.Information.Generator) [](https://www.nuget.org/packages/Credfeto.Version.Information.Generator/)  2024-11-05
- 8 [LinqGen.Generator](/docs/LinqGen.Generator) [](https://www.nuget.org/packages/LinqGen.Generator/)[](https://www.nuget.org/packages/LinqGen/)  2024-03-04
+ 8 [Larcanum.GitInfo](/docs/Larcanum.GitInfo) [](https://www.nuget.org/packages/Larcanum.GitInfo/)  2025-01-17
- 9 [Pekspro.BuildInformationGenerator](/docs/Pekspro.BuildInformationGenerator) [](https://www.nuget.org/packages/Pekspro.BuildInformationGenerator/)  2024-07-19
+ 9 [LinqGen.Generator](/docs/LinqGen.Generator) [](https://www.nuget.org/packages/LinqGen.Generator/)[](https://www.nuget.org/packages/LinqGen/)  2024-03-04
- 10 [PlantUmlClassDiagramGenerator](/docs/PlantUmlClassDiagramGenerator) [](https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.SourceGenerator/)[](https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.Attributes/)  2024-02-20
+ 10 [Pekspro.BuildInformationGenerator](/docs/Pekspro.BuildInformationGenerator) [](https://www.nuget.org/packages/Pekspro.BuildInformationGenerator/)  2024-07-19
- 11 [RSCG_AMS](/docs/RSCG_AMS) [](https://www.nuget.org/packages/RSCG_AMS/)  2023-04-16
+ 11 [PlantUmlClassDiagramGenerator](/docs/PlantUmlClassDiagramGenerator) [](https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.SourceGenerator/)[](https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.Attributes/)  2024-02-20
- 12 [RSCG_ExportDiagram](/docs/RSCG_ExportDiagram) [](https://github.com/ignatandrei/RSCG_ExportDiagram)  2024-08-01
+ 12 [RSCG_AMS](/docs/RSCG_AMS) [](https://www.nuget.org/packages/RSCG_AMS/)  2023-04-16
- 13 [RSCG_FunctionsWithDI](/docs/RSCG_FunctionsWithDI) [](https://www.nuget.org/packages/RSCG_FunctionsWithDI/)  2023-04-16
+ 13 [RSCG_ExportDiagram](/docs/RSCG_ExportDiagram) [](https://github.com/ignatandrei/RSCG_ExportDiagram)  2024-08-01
- 14 [RSCG_NameGenerator](/docs/RSCG_NameGenerator) [](https://www.nuget.org/packages/RSCG_NameGenerator/)  2024-08-25
+ 14 [RSCG_FunctionsWithDI](/docs/RSCG_FunctionsWithDI) [](https://www.nuget.org/packages/RSCG_FunctionsWithDI/)  2023-04-16
- 15 [RSCG_TimeBombComment](/docs/RSCG_TimeBombComment) [](https://www.nuget.org/packages/RSCG_TimeBombComment/)  2023-04-16
+ 15 [RSCG_NameGenerator](/docs/RSCG_NameGenerator) [](https://www.nuget.org/packages/RSCG_NameGenerator/)  2024-08-25
- 16 [RSCG_Wait](/docs/RSCG_Wait) [](https://www.nuget.org/packages/RSCG_WaitAndOptions/)  2024-02-21
+ 16 [RSCG_TimeBombComment](/docs/RSCG_TimeBombComment) [](https://www.nuget.org/packages/RSCG_TimeBombComment/)  2023-04-16
- 17 [ShadowWriterProjectInfo](/docs/ShadowWriterProjectInfo) [](https://www.nuget.org/packages/ShadowWriter/)  2025-07-27
+ 17 [RSCG_Wait](/docs/RSCG_Wait) [](https://www.nuget.org/packages/RSCG_WaitAndOptions/)  2024-02-21
- 18 [ThisAssembly](/docs/ThisAssembly) [](https://www.nuget.org/packages/ThisAssembly)  2023-04-16
+ 18 [ShadowWriterProjectInfo](/docs/ShadowWriterProjectInfo) [](https://www.nuget.org/packages/ShadowWriter/)  2025-07-27
- 19 [ThisAssembly.Constants](/docs/ThisAssembly.Constants) [](https://www.nuget.org/packages/ThisAssembly.Constants/)  2024-07-18
+ 19 [ThisAssembly](/docs/ThisAssembly) [](https://www.nuget.org/packages/ThisAssembly)  2023-04-16
- 20 [ThisAssembly.Metadata](/docs/ThisAssembly.Metadata) [](https://www.nuget.org/packages/ThisAssembly.Metadata/)  2024-07-20
+ 20 [ThisAssembly.Constants](/docs/ThisAssembly.Constants) [](https://www.nuget.org/packages/ThisAssembly.Constants/)  2024-07-18
+
+ 21 [ThisAssembly.Metadata](/docs/ThisAssembly.Metadata) [](https://www.nuget.org/packages/ThisAssembly.Metadata/)  2024-07-20
\ No newline at end of file
diff --git a/v2/rscg_examples_site/docs/Categories/_PrimitiveEnhancementProject.mdx b/v2/rscg_examples_site/docs/Categories/_PrimitiveEnhancementProject.mdx
index 793c37c54..2f0102445 100644
--- a/v2/rscg_examples_site/docs/Categories/_PrimitiveEnhancementProject.mdx
+++ b/v2/rscg_examples_site/docs/Categories/_PrimitiveEnhancementProject.mdx
@@ -2,43 +2,45 @@
1 [AssemblyMetadata](/docs/AssemblyMetadata) [](https://www.nuget.org/packages/AssemblyMetadata/)  2026-04-02
- 2 [AssemblyVersionInfo](/docs/AssemblyVersionInfo) [](https://www.nuget.org/packages/AssemblyVersionInfo/)  2025-07-28
+ 2 [AssemblyMetadata.Generators](/docs/AssemblyMetadata.Generators) [](https://www.nuget.org/packages/AssemblyMetadata.Generators/)  2026-05-15
- 3 [AutoInvoke.Generator](/docs/AutoInvoke.Generator) [](https://www.nuget.org/packages/AutoInvoke.Generator/)  2024-03-03
+ 3 [AssemblyVersionInfo](/docs/AssemblyVersionInfo) [](https://www.nuget.org/packages/AssemblyVersionInfo/)  2025-07-28
- 4 [AutoSpectre](/docs/AutoSpectre) [](https://www.nuget.org/packages/AutoSpectre.SourceGeneration)[](https://www.nuget.org/packages/AutoSpectre)  2024-02-24
+ 4 [AutoInvoke.Generator](/docs/AutoInvoke.Generator) [](https://www.nuget.org/packages/AutoInvoke.Generator/)  2024-03-03
- 5 [BuildInfo](/docs/BuildInfo) [](https://www.nuget.org/packages/BuildInfo/)  2024-01-20
+ 5 [AutoSpectre](/docs/AutoSpectre) [](https://www.nuget.org/packages/AutoSpectre.SourceGeneration)[](https://www.nuget.org/packages/AutoSpectre)  2024-02-24
- 6 [Credfeto.Version.Information.Generator](/docs/Credfeto.Version.Information.Generator) [](https://www.nuget.org/packages/Credfeto.Version.Information.Generator/)  2024-11-05
+ 6 [BuildInfo](/docs/BuildInfo) [](https://www.nuget.org/packages/BuildInfo/)  2024-01-20
- 7 [Larcanum.GitInfo](/docs/Larcanum.GitInfo) [](https://www.nuget.org/packages/Larcanum.GitInfo/)  2025-01-17
+ 7 [Credfeto.Version.Information.Generator](/docs/Credfeto.Version.Information.Generator) [](https://www.nuget.org/packages/Credfeto.Version.Information.Generator/)  2024-11-05
- 8 [LinqGen.Generator](/docs/LinqGen.Generator) [](https://www.nuget.org/packages/LinqGen.Generator/)[](https://www.nuget.org/packages/LinqGen/)  2024-03-04
+ 8 [Larcanum.GitInfo](/docs/Larcanum.GitInfo) [](https://www.nuget.org/packages/Larcanum.GitInfo/)  2025-01-17
- 9 [Pekspro.BuildInformationGenerator](/docs/Pekspro.BuildInformationGenerator) [](https://www.nuget.org/packages/Pekspro.BuildInformationGenerator/)  2024-07-19
+ 9 [LinqGen.Generator](/docs/LinqGen.Generator) [](https://www.nuget.org/packages/LinqGen.Generator/)[](https://www.nuget.org/packages/LinqGen/)  2024-03-04
- 10 [PlantUmlClassDiagramGenerator](/docs/PlantUmlClassDiagramGenerator) [](https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.SourceGenerator/)[](https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.Attributes/)  2024-02-20
+ 10 [Pekspro.BuildInformationGenerator](/docs/Pekspro.BuildInformationGenerator) [](https://www.nuget.org/packages/Pekspro.BuildInformationGenerator/)  2024-07-19
- 11 [RSCG_AMS](/docs/RSCG_AMS) [](https://www.nuget.org/packages/RSCG_AMS/)  2023-04-16
+ 11 [PlantUmlClassDiagramGenerator](/docs/PlantUmlClassDiagramGenerator) [](https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.SourceGenerator/)[](https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.Attributes/)  2024-02-20
- 12 [RSCG_ExportDiagram](/docs/RSCG_ExportDiagram) [](https://github.com/ignatandrei/RSCG_ExportDiagram)  2024-08-01
+ 12 [RSCG_AMS](/docs/RSCG_AMS) [](https://www.nuget.org/packages/RSCG_AMS/)  2023-04-16
- 13 [RSCG_FunctionsWithDI](/docs/RSCG_FunctionsWithDI) [](https://www.nuget.org/packages/RSCG_FunctionsWithDI/)  2023-04-16
+ 13 [RSCG_ExportDiagram](/docs/RSCG_ExportDiagram) [](https://github.com/ignatandrei/RSCG_ExportDiagram)  2024-08-01
- 14 [RSCG_NameGenerator](/docs/RSCG_NameGenerator) [](https://www.nuget.org/packages/RSCG_NameGenerator/)  2024-08-25
+ 14 [RSCG_FunctionsWithDI](/docs/RSCG_FunctionsWithDI) [](https://www.nuget.org/packages/RSCG_FunctionsWithDI/)  2023-04-16
- 15 [RSCG_TimeBombComment](/docs/RSCG_TimeBombComment) [](https://www.nuget.org/packages/RSCG_TimeBombComment/)  2023-04-16
+ 15 [RSCG_NameGenerator](/docs/RSCG_NameGenerator) [](https://www.nuget.org/packages/RSCG_NameGenerator/)  2024-08-25
- 16 [RSCG_Wait](/docs/RSCG_Wait) [](https://www.nuget.org/packages/RSCG_WaitAndOptions/)  2024-02-21
+ 16 [RSCG_TimeBombComment](/docs/RSCG_TimeBombComment) [](https://www.nuget.org/packages/RSCG_TimeBombComment/)  2023-04-16
- 17 [ShadowWriterProjectInfo](/docs/ShadowWriterProjectInfo) [](https://www.nuget.org/packages/ShadowWriter/)  2025-07-27
+ 17 [RSCG_Wait](/docs/RSCG_Wait) [](https://www.nuget.org/packages/RSCG_WaitAndOptions/)  2024-02-21
- 18 [ThisAssembly](/docs/ThisAssembly) [](https://www.nuget.org/packages/ThisAssembly)  2023-04-16
+ 18 [ShadowWriterProjectInfo](/docs/ShadowWriterProjectInfo) [](https://www.nuget.org/packages/ShadowWriter/)  2025-07-27
- 19 [ThisAssembly.Constants](/docs/ThisAssembly.Constants) [](https://www.nuget.org/packages/ThisAssembly.Constants/)  2024-07-18
+ 19 [ThisAssembly](/docs/ThisAssembly) [](https://www.nuget.org/packages/ThisAssembly)  2023-04-16
- 20 [ThisAssembly.Metadata](/docs/ThisAssembly.Metadata) [](https://www.nuget.org/packages/ThisAssembly.Metadata/)  2024-07-20
+ 20 [ThisAssembly.Constants](/docs/ThisAssembly.Constants) [](https://www.nuget.org/packages/ThisAssembly.Constants/)  2024-07-18
+
+ 21 [ThisAssembly.Metadata](/docs/ThisAssembly.Metadata) [](https://www.nuget.org/packages/ThisAssembly.Metadata/)  2024-07-20
### See category
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/AssemblyMetadata.Generators.md b/v2/rscg_examples_site/docs/RSCG-Examples/AssemblyMetadata.Generators.md
new file mode 100644
index 000000000..481fa2e7f
--- /dev/null
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/AssemblyMetadata.Generators.md
@@ -0,0 +1,235 @@
+---
+sidebar_position: 2700
+title: 270 - AssemblyMetadata.Generators
+description: Generating assembly metadata attributes at compile time.
+slug: /AssemblyMetadata.Generators
+---
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+import TOCInline from '@theme/TOCInline';
+import SameCategory from '../Categories/_PrimitiveEnhancementProject.mdx';
+
+# AssemblyMetadata.Generators by LoreSoft
+
+
+
+
+## NuGet / site data
+[](https://www.nuget.org/packages/AssemblyMetadata.Generators/)
+[](https://github.com/loresoft/AssemblyMetadata.Generators)
+
+
+## Details
+
+### Info
+:::info
+
+Name: **AssemblyMetadata.Generators**
+
+Source generator to expose assembly attributes as string constants
+
+Author: LoreSoft
+
+NuGet:
+*https://www.nuget.org/packages/AssemblyMetadata.Generators/*
+
+
+You can find more details at https://github.com/loresoft/AssemblyMetadata.Generators
+
+Source: https://github.com/loresoft/AssemblyMetadata.Generators
+
+:::
+
+### Author
+:::note
+LoreSoft
+
+:::
+
+## Original Readme
+:::note
+
+### AssemblyMetadata.Generators
+
+Source generator to expose assembly attributes as string constants.
+
+[](https://github.com/loresoft/AssemblyMetadata.Generators/actions)
+
+[](https://www.nuget.org/packages/AssemblyMetadata.Generators/)
+
+[](https://coveralls.io/github/loresoft/AssemblyMetadata.Generators?branch=main)
+
+######### Usage
+
+########## Add package
+
+Add the nuget package project to your projects.
+
+`dotnet add package AssemblyMetadata.Generators`
+
+######### Generated
+
+This source generator creates an internal partial class called `ThisAssembly` with all the assembly level attributes converted to string constants
+
+```c#
+internal static partial class ThisAssembly
+{
+ public const string TargetFramework = ".NETCoreApp,Version=v7.0";
+ public const string Company = "LoreSoft";
+ public const string Configuration = "Debug";
+ public const string Copyright = "Copyright © 2023 LoreSoft";
+ public const string Description = "Source generator to expose assembly attributes as string constants";
+ public const string FileVersion = "1.0.0.0";
+ public const string InformationalVersion = "1.0.0";
+ public const string Product = "AssemblyMetadata.Generators.Tests";
+ public const string Title = "AssemblyMetadata.Generators.Tests";
+ public const string Version = "1.0.0.0";
+ public const string RepositoryUrl = "https://github.com/loresoft/AssemblyMetadata.Generators";
+ public const string NeutralResourcesLanguage = "en-US";
+}
+```
+
+######### Namespace
+
+Set the `ThisAssemblyNamespace` MSBuild property to set the namespace of the generated `ThisAssembly` class. Otherwise, it will be in the global namespace.
+
+Put `ThisAssembly` in the projects root namespace.
+
+```xml
+
+ $(RootNamespace)
+
+```
+
+
+:::
+
+### About
+:::note
+
+Generating assembly metadata attributes at compile time.
+
+
+:::
+
+## How to use
+
+### Example (source csproj, source files)
+
+
+
+
+
+This is the CSharp Project that references **AssemblyMetadata.Generators**
+```xml showLineNumbers {11}
+
+
+
+ Exe
+ net10.0
+ enable
+ enable
+
+
+
+
+
+
+ true
+ $(BaseIntermediateOutputPath)\GX
+
+
+
+```
+
+
+
+
+
+ This is the use of **AssemblyMetadata.Generators** in *Program.cs*
+
+```csharp showLineNumbers
+Console.WriteLine(ThisAssembly.Title);
+
+Console.WriteLine(ThisAssembly.TargetFramework);
+
+```
+
+
+
+
+### Generated Files
+
+Those are taken from $(BaseIntermediateOutputPath)\GX
+
+
+
+
+```csharp showLineNumbers
+//
+
+///
+/// Assembly attributes exposed as public constants
+///
+[global::System.CodeDom.Compiler.GeneratedCodeAttribute("AssemblyMetadata.Generators", "2.2.0+ec398d1ec2fd415d5475a08ad0fada879c510c97")]
+internal static partial class ThisAssembly
+{
+
+ public const string TargetFramework = ".NETCoreApp,Version=v10.0";
+
+ public const string Company = "DemoMeta";
+
+ public const string Configuration = "Debug";
+
+ public const string FileVersion = "1.0.0.0";
+
+ public const string InformationalVersion = "1.0.0+3eed64e7dd376ed8c6cf1f77efd5968cb88c898a";
+
+ public const string Product = "DemoMeta";
+
+ public const string Title = "DemoMeta";
+
+ public const string Version = "1.0.0.0";
+
+ public const string AssemblyName = "DemoMeta";
+
+ public const string DefineConstants = "TRACE";
+
+ public const string RootNamespace = "DemoMeta";
+
+ public const string PackageVersion = "1.0.0";
+
+ public const string PackageId = "DemoMeta";
+
+}
+
+```
+
+
+
+
+## Useful
+
+### Download Example (.NET C#)
+
+:::tip
+
+[Download Example project AssemblyMetadata.Generators ](/sources/AssemblyMetadata.Generators.zip)
+
+:::
+
+
+### Share AssemblyMetadata.Generators
+
+
+
+https://ignatandrei.github.io/RSCG_Examples/v2/docs/AssemblyMetadata.Generators
+
+
+
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/index.md b/v2/rscg_examples_site/docs/RSCG-Examples/index.md
index 86901ae2d..5a86bdca1 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/index.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/index.md
@@ -1,7 +1,7 @@
---
sidebar_position: 30
-title: 269 RSCG list by category
-description: 269 RSCG list by category
+title: 270 RSCG list by category
+description: 270 RSCG list by category
slug: /rscg-examples
---
@@ -710,7 +710,7 @@ import DocCardList from '@theme/DocCardList';
## EnhancementProject
- Expand EnhancementProject =>examples:20
+ Expand EnhancementProject =>examples:21
@@ -811,6 +811,11 @@ import DocCardList from '@theme/DocCardList';
[AssemblyMetadata](/docs/AssemblyMetadata)
+
+
+
+[AssemblyMetadata.Generators](/docs/AssemblyMetadata.Generators)
+
@@ -1949,6 +1954,8 @@ flowchart LR;
EnhancementProject--> AssemblyMetadata((AssemblyMetadata))
+ EnhancementProject--> AssemblyMetadata.Generators((AssemblyMetadata.Generators))
+
Enum--> NetEscapades.EnumGenerators((NetEscapades.EnumGenerators))
Enum--> EnumClass((EnumClass))
diff --git a/v2/rscg_examples_site/docs/about.md b/v2/rscg_examples_site/docs/about.md
index f54fb1847..241e4b943 100644
--- a/v2/rscg_examples_site/docs/about.md
+++ b/v2/rscg_examples_site/docs/about.md
@@ -6,7 +6,7 @@ title: About
## Content
You will find here code examples
-of 269 Roslyn Source Code Generator (RSCG)
+of 270 Roslyn Source Code Generator (RSCG)
that can be useful for you. That means, you will write more elegant and concise code - even if the generators code is not always nice to look.
## Are those examples ready for production?
diff --git a/v2/rscg_examples_site/docs/indexRSCG.md b/v2/rscg_examples_site/docs/indexRSCG.md
index 8aed8801a..f1581a1d7 100644
--- a/v2/rscg_examples_site/docs/indexRSCG.md
+++ b/v2/rscg_examples_site/docs/indexRSCG.md
@@ -7,9 +7,9 @@ slug: /List-of-RSCG
import useBaseUrl from '@docusaurus/useBaseUrl';
-## 269 RSCG with examples in descending chronological order
+## 270 RSCG with examples in descending chronological order
-This is the list of 269 ( 16 from Microsoft) RSCG with examples
+This is the list of 270 ( 16 from Microsoft) RSCG with examples
[See by category](/docs/rscg-examples) [See as json](/exports/RSCG.json) [See as Excel](/exports/RSCG.xlsx)
@@ -20,6 +20,7 @@ This is the list of 269 ( 16 from Microsoft) RSCG with examples
| No | Name | Date | Category |
| --------- | ----- | ---- | -------- |
+|270| [AssemblyMetadata.Generators by LoreSoft ](/docs/AssemblyMetadata.Generators)|2026-05-15 => 15 May 2026 | [EnhancementProject](/docs/Categories/EnhancementProject) |
|269| [LinkDotNet.Enumeration by Steven Giesel ](/docs/LinkDotNet.Enumeration)|2026-05-14 => 14 May 2026 | [Enum](/docs/Categories/Enum) |
|268| [GenerateDispose by Itai Tzur ](/docs/GenerateDispose)|2026-05-13 => 13 May 2026 | [Disposer](/docs/Categories/Disposer) |
|267| [Maestria.TypeProviders by Fábio Monteiro Naspolini ](/docs/Maestria.TypeProviders)|2026-04-09 => 09 April 2026 | [FilesToCode](/docs/Categories/FilesToCode) |
diff --git a/v2/rscg_examples_site/src/components/HomepageFeatures/index.js b/v2/rscg_examples_site/src/components/HomepageFeatures/index.js
index 984a353de..c76dcb78e 100644
--- a/v2/rscg_examples_site/src/components/HomepageFeatures/index.js
+++ b/v2/rscg_examples_site/src/components/HomepageFeatures/index.js
@@ -4,7 +4,7 @@ import styles from './styles.module.css';
const FeatureList = [
{
-title: '269 Examples (16 from MSFT)',
+title: '270 Examples (16 from MSFT)',
Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default,
description: (
<>
diff --git a/v2/rscg_examples_site/static/exports/RSCG.json b/v2/rscg_examples_site/static/exports/RSCG.json
index 095f0f55e..886e25d9a 100644
--- a/v2/rscg_examples_site/static/exports/RSCG.json
+++ b/v2/rscg_examples_site/static/exports/RSCG.json
@@ -2153,6 +2153,14 @@
"Source": "https://github.com/linkdotnet/Enumeration",
"Category": "Enum",
"AddedOn": "2026-05-14T00:00:00"
+ },
+ {
+ "Name": "AssemblyMetadata.Generators",
+ "Link": "https://ignatandrei.github.io/RSCG_Examples/v2/docs/AssemblyMetadata.Generators",
+ "NuGet": "https://www.nuget.org/packages/AssemblyMetadata.Generators/",
+ "Source": "https://github.com/loresoft/AssemblyMetadata.Generators",
+ "Category": "EnhancementProject",
+ "AddedOn": "2026-05-15T00:00:00"
}
]
}
\ No newline at end of file
diff --git a/v2/rscg_examples_site/static/exports/RSCG.xlsx b/v2/rscg_examples_site/static/exports/RSCG.xlsx
index c76735e0c..45d3074e4 100644
Binary files a/v2/rscg_examples_site/static/exports/RSCG.xlsx and b/v2/rscg_examples_site/static/exports/RSCG.xlsx differ
diff --git a/v2/rscg_examples_site/static/sources/AssemblyMetadata.Generators.zip b/v2/rscg_examples_site/static/sources/AssemblyMetadata.Generators.zip
new file mode 100644
index 000000000..b5a9b14e3
Binary files /dev/null and b/v2/rscg_examples_site/static/sources/AssemblyMetadata.Generators.zip differ