Skip to content

Commit 3de02b6

Browse files
authored
Merge pull request #454 from ignatandrei/Pekspro.DataAnnotationValuesExtractor
pekspro
2 parents 8f8ae7f + 081d916 commit 3de02b6

30 files changed

Lines changed: 1332 additions & 73 deletions

README.md

Lines changed: 41 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
# RSCG - 256 Examples of Roslyn Source Code Generators / 16 created by Microsoft /
1+
# RSCG - 257 Examples of Roslyn Source Code Generators / 16 created by Microsoft /
22

3-
The RSCG_Examples repository is a comprehensive documentation system that automatically processes and showcases 256 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.
3+
The RSCG_Examples repository is a comprehensive documentation system that automatically processes and showcases 257 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.
44

55
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
66

7-
## Latest Update : 2026-02-14 => 14 February 2026
7+
## Latest Update : 2026-02-15 => 15 February 2026
88

99
If you want to see examples with code, please click ***[List V2](https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG)***
1010

@@ -24,8 +24,30 @@ If you want to be notified each time I add a new RSCG example , please click htt
2424

2525
## Content
2626

27-
Those are the 256 Roslyn Source Code Generators that I have tested you can see and download source code example.
27+
Those are the 257 Roslyn Source Code Generators that I have tested you can see and download source code example.
2828
( including 16 from Microsoft )
29+
### 257. [Pekspro.DataAnnotationValuesExtractor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/Pekspro.DataAnnotationValuesExtractor) , in the [EnhancementClass](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementclass) category
30+
31+
Generated on : 2026-02-15 => 15 February 2026
32+
33+
<details>
34+
<summary>Expand</summary>
35+
36+
37+
38+
Author: Pekspro
39+
40+
A source generator for creating constants from data annotations.
41+
42+
Nuget: [https://www.nuget.org/packages/Pekspro.DataAnnotationValuesExtractor/](https://www.nuget.org/packages/Pekspro.DataAnnotationValuesExtractor/)
43+
44+
45+
Link: [https://ignatandrei.github.io/RSCG_Examples/v2/docs/Pekspro.DataAnnotationValuesExtractor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/Pekspro.DataAnnotationValuesExtractor)
46+
47+
Source: [https://github.com/pekspro/DataAnnotationValuesExtractor](https://github.com/pekspro/DataAnnotationValuesExtractor)
48+
49+
</details>
50+
2951
### 256. [Sundew.DiscriminatedUnions](https://ignatandrei.github.io/RSCG_Examples/v2/docs/Sundew.DiscriminatedUnions) , in the [FunctionalProgramming](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#functionalprogramming) category
3052

3153
Generated on : 2026-02-14 => 14 February 2026
@@ -6040,69 +6062,69 @@ Why I have not tested : issue opened
60406062
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/GaoNian-NET/MapperToolkit&body=https://github.com/GaoNian-NET/MapperToolkit
60416063

60426064

6043-
30) [https://github.com/IeuanWalker/MinimalApi.Endpoints/]( https://github.com/IeuanWalker/MinimalApi.Endpoints/) , https://github.com/IeuanWalker/MinimalApi.Endpoints/
6065+
30) [https://github.com/gumbarros/EndpointHelpers]( https://github.com/gumbarros/EndpointHelpers) , https://github.com/gumbarros/EndpointHelpers
6066+
6067+
Why I have not tested : later
6068+
6069+
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/gumbarros/EndpointHelpers&body=https://github.com/gumbarros/EndpointHelpers
6070+
6071+
6072+
31) [https://github.com/IeuanWalker/MinimalApi.Endpoints/]( https://github.com/IeuanWalker/MinimalApi.Endpoints/) , https://github.com/IeuanWalker/MinimalApi.Endpoints/
60446073

60456074
Why I have not tested : later
60466075

60476076
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/IeuanWalker/MinimalApi.Endpoints/&body=https://github.com/IeuanWalker/MinimalApi.Endpoints/
60486077

60496078

6050-
31) [https://github.com/inputfalken/Dynatello]( https://github.com/inputfalken/Dynatello) , https://github.com/inputfalken/Dynatello
6079+
32) [https://github.com/inputfalken/Dynatello]( https://github.com/inputfalken/Dynatello) , https://github.com/inputfalken/Dynatello
60516080

60526081
Why I have not tested : too complicated
60536082

60546083
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/inputfalken/Dynatello&body=https://github.com/inputfalken/Dynatello
60556084

60566085

6057-
32) [https://github.com/ionite34/MinimalApiMapper]( https://github.com/ionite34/MinimalApiMapper) , https://github.com/ionite34/MinimalApiMapper
6086+
33) [https://github.com/ionite34/MinimalApiMapper]( https://github.com/ionite34/MinimalApiMapper) , https://github.com/ionite34/MinimalApiMapper
60586087

60596088
Why I have not tested : own idea where to generate files, so overwrites
60606089

60616090
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/ionite34/MinimalApiMapper&body=https://github.com/ionite34/MinimalApiMapper
60626091

60636092

6064-
33) [https://github.com/JasonBock/CslaGeneratorSerialization]( https://github.com/JasonBock/CslaGeneratorSerialization) , https://github.com/JasonBock/CslaGeneratorSerialization
6093+
34) [https://github.com/JasonBock/CslaGeneratorSerialization]( https://github.com/JasonBock/CslaGeneratorSerialization) , https://github.com/JasonBock/CslaGeneratorSerialization
60656094

60666095
Why I have not tested : too complicated
60676096

60686097
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/JasonBock/CslaGeneratorSerialization&body=https://github.com/JasonBock/CslaGeneratorSerialization
60696098

60706099

6071-
34) [https://github.com/MoslemBenDhaou/DataSurface]( https://github.com/MoslemBenDhaou/DataSurface) , https://github.com/MoslemBenDhaou/DataSurface
6100+
35) [https://github.com/MoslemBenDhaou/DataSurface]( https://github.com/MoslemBenDhaou/DataSurface) , https://github.com/MoslemBenDhaou/DataSurface
60726101

60736102
Why I have not tested : later
60746103

60756104
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/MoslemBenDhaou/DataSurface&body=https://github.com/MoslemBenDhaou/DataSurface
60766105

60776106

6078-
35) [https://github.com/mu-dawood/EasyValidate]( https://github.com/mu-dawood/EasyValidate) , https://github.com/mu-dawood/EasyValidate
6107+
36) [https://github.com/mu-dawood/EasyValidate]( https://github.com/mu-dawood/EasyValidate) , https://github.com/mu-dawood/EasyValidate
60796108

60806109
Why I have not tested : later
60816110

60826111
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/mu-dawood/EasyValidate&body=https://github.com/mu-dawood/EasyValidate
60836112

60846113

6085-
36) [https://github.com/nuskey8/Csv-CSharp]( https://github.com/nuskey8/Csv-CSharp) , https://github.com/nuskey8/Csv-CSharp
6114+
37) [https://github.com/nuskey8/Csv-CSharp]( https://github.com/nuskey8/Csv-CSharp) , https://github.com/nuskey8/Csv-CSharp
60866115

60876116
Why I have not tested : later
60886117

60896118
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/nuskey8/Csv-CSharp&body=https://github.com/nuskey8/Csv-CSharp
60906119

60916120

6092-
37) [https://github.com/OrgEleCho/EleCho.Internationalization]( https://github.com/OrgEleCho/EleCho.Internationalization) , https://github.com/OrgEleCho/EleCho.Internationalization
6121+
38) [https://github.com/OrgEleCho/EleCho.Internationalization]( https://github.com/OrgEleCho/EleCho.Internationalization) , https://github.com/OrgEleCho/EleCho.Internationalization
60936122

60946123
Why I have not tested : issue opened
60956124

60966125
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/OrgEleCho/EleCho.Internationalization&body=https://github.com/OrgEleCho/EleCho.Internationalization
60976126

60986127

6099-
38) [https://github.com/pekspro/DataAnnotationValuesExtractor]( https://github.com/pekspro/DataAnnotationValuesExtractor) , https://github.com/pekspro/DataAnnotationValuesExtractor
6100-
6101-
Why I have not tested : later
6102-
6103-
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/pekspro/DataAnnotationValuesExtractor&body=https://github.com/pekspro/DataAnnotationValuesExtractor
6104-
6105-
61066128
39) [https://github.com/pierre3/PlantUmlClassDiagramGenerator]( https://github.com/pierre3/PlantUmlClassDiagramGenerator) , https://github.com/pierre3/PlantUmlClassDiagramGenerator
61076129

61086130
Why I have not tested : later

later.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Just later
22

3-
## Latest Update : 2026-02-14 => 14 February 2026
3+
## Latest Update : 2026-02-15 => 15 February 2026
44

55

66

@@ -74,31 +74,31 @@ Why I have not tested : later
7474

7575

7676

77-
12) [https://github.com/IeuanWalker/MinimalApi.Endpoints/]( https://github.com/IeuanWalker/MinimalApi.Endpoints/) , https://github.com/IeuanWalker/MinimalApi.Endpoints/
77+
12) [https://github.com/gumbarros/EndpointHelpers]( https://github.com/gumbarros/EndpointHelpers) , https://github.com/gumbarros/EndpointHelpers
7878

7979
Why I have not tested : later
8080

8181

8282

83-
13) [https://github.com/MoslemBenDhaou/DataSurface]( https://github.com/MoslemBenDhaou/DataSurface) , https://github.com/MoslemBenDhaou/DataSurface
83+
13) [https://github.com/IeuanWalker/MinimalApi.Endpoints/]( https://github.com/IeuanWalker/MinimalApi.Endpoints/) , https://github.com/IeuanWalker/MinimalApi.Endpoints/
8484

8585
Why I have not tested : later
8686

8787

8888

89-
14) [https://github.com/mu-dawood/EasyValidate]( https://github.com/mu-dawood/EasyValidate) , https://github.com/mu-dawood/EasyValidate
89+
14) [https://github.com/MoslemBenDhaou/DataSurface]( https://github.com/MoslemBenDhaou/DataSurface) , https://github.com/MoslemBenDhaou/DataSurface
9090

9191
Why I have not tested : later
9292

9393

9494

95-
15) [https://github.com/nuskey8/Csv-CSharp]( https://github.com/nuskey8/Csv-CSharp) , https://github.com/nuskey8/Csv-CSharp
95+
15) [https://github.com/mu-dawood/EasyValidate]( https://github.com/mu-dawood/EasyValidate) , https://github.com/mu-dawood/EasyValidate
9696

9797
Why I have not tested : later
9898

9999

100100

101-
16) [https://github.com/pekspro/DataAnnotationValuesExtractor]( https://github.com/pekspro/DataAnnotationValuesExtractor) , https://github.com/pekspro/DataAnnotationValuesExtractor
101+
16) [https://github.com/nuskey8/Csv-CSharp]( https://github.com/nuskey8/Csv-CSharp) , https://github.com/nuskey8/Csv-CSharp
102102

103103
Why I have not tested : later
104104

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
2+
{
3+
"$schema": "https://aka.ms/codetour-schema",
4+
"title": "Pekspro.DataAnnotationValuesExtractor",
5+
"steps":
6+
[
7+
{
8+
"file": "rscg_examples/Pekspro.DataAnnotationValuesExtractor/src/Attr/Attr.csproj",
9+
"description": "First, we add Nuget [Pekspro.DataAnnotationValuesExtractor](https://www.nuget.org/packages/Pekspro.DataAnnotationValuesExtractor/) in csproj ",
10+
"pattern": "Pekspro.DataAnnotationValuesExtractor"
11+
}
12+
13+
,{
14+
"file": "rscg_examples/Pekspro.DataAnnotationValuesExtractor/src/Attr/Values.cs",
15+
"description": "File Values.cs ",
16+
"pattern": "this is the code"
17+
}
18+
19+
,{
20+
"file": "rscg_examples/Pekspro.DataAnnotationValuesExtractor/src/Attr/Person.cs",
21+
"description": "File Person.cs ",
22+
"pattern": "this is the code"
23+
}
24+
25+
,{
26+
"file": "rscg_examples/Pekspro.DataAnnotationValuesExtractor/src/Attr/Program.cs",
27+
"description": "File Program.cs \r\n>> dotnet run --project rscg_examples/Pekspro.DataAnnotationValuesExtractor/src/Attr/Attr.csproj ",
28+
"pattern": "this is the code"
29+
}
30+
31+
32+
,{
33+
"file": "rscg_examples/Pekspro.DataAnnotationValuesExtractor/src/Attr/obj/GX/Pekspro.DataAnnotationValuesExtractor/Pekspro.DataAnnotationValuesExtractor.DataAnnotationValuesExtractor/Values.g.cs",
34+
"description": "Generated File 1 from 1 : Values.g.cs ",
35+
"line": 1
36+
}
37+
38+
],
39+
40+
"ref": "main"
41+
42+
}

v2/Generator/all.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,3 +255,4 @@ Nr,Key,Source,Category
255255
254,ErrorOrX, https://github.com/ANcpLua/ErrorOrX,API
256256
255,KnockOff, https://github.com/NeatooDotNet/KnockOff,Tests
257257
256,Sundew.DiscriminatedUnions, https://github.com/sundews/Sundew.DiscriminatedUnions,FunctionalProgramming
258+
257,Pekspro.DataAnnotationValuesExtractor, https://github.com/pekspro/DataAnnotationValuesExtractor,EnhancementClass

v2/RSCGExamplesData/GeneratorDataRec.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1552,5 +1552,11 @@
15521552
"Category": 10,
15531553
"dtStart": "2026-02-14T00:00:00",
15541554
"show": true
1555+
},
1556+
{
1557+
"ID":"Pekspro.DataAnnotationValuesExtractor",
1558+
"Category": 5,
1559+
"dtStart": "2026-02-15T00:00:00",
1560+
"show": true
15551561
}
15561562
]

v2/RSCGExamplesData/NoExample.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -988,13 +988,13 @@
988988
"why":"later"
989989
},
990990
{
991-
"ID":252,
992-
"name":"https://github.com/pekspro/DataAnnotationValuesExtractor",
991+
"ID":253,
992+
"name":"https://github.com/sebastienros/comptime",
993993
"why":"later"
994994
},
995995
{
996-
"ID":253,
997-
"name":"https://github.com/sebastienros/comptime",
996+
"ID":254,
997+
"name":"https://github.com/gumbarros/EndpointHelpers",
998998
"why":"later"
999999
}
10001000

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
2+
<h1>RSCG nr 257 : Pekspro.DataAnnotationValuesExtractor</h1>
3+
4+
<h2>Info</h2>
5+
Nuget : <a href="https://www.nuget.org/packages/Pekspro.DataAnnotationValuesExtractor/" target="_blank">https://www.nuget.org/packages/Pekspro.DataAnnotationValuesExtractor/</a>
6+
7+
<p>You can find more details at : <a href="https://github.com/pekspro/DataAnnotationValuesExtractor" target="_blank"> https://github.com/pekspro/DataAnnotationValuesExtractor</a></p>
8+
9+
<p>Author :Pekspro</p>
10+
11+
<p>Source: <a href="https://github.com/pekspro/DataAnnotationValuesExtractor" target="_blank">https://github.com/pekspro/DataAnnotationValuesExtractor</a> </p>
12+
13+
<h2>About</h2>
14+
15+
Generating code to extract values from data annotations in C#.
16+
17+
<h2>
18+
How to use
19+
</h2>
20+
<h3>
21+
Add reference to the <a href="https://www.nuget.org/packages/Pekspro.DataAnnotationValuesExtractor/" target="_blank">Pekspro.DataAnnotationValuesExtractor</a> in the csproj
22+
</h3>
23+
<img src="images/Pekspro.DataAnnotationValuesExtractor/Attr.csproj.png" width="580" height="580" />
24+
25+
<h3>This was for me the <b>starting</b> code</h3>
26+
27+
<br />
28+
I have <b>coded</b> the file Program.cs
29+
<br />
30+
<img src="images/Pekspro.DataAnnotationValuesExtractor/csFiles/Program.cs.png" width="580" height="580" />
31+
<hr />
32+
33+
<br />
34+
I have <b>coded</b> the file Person.cs
35+
<br />
36+
<img src="images/Pekspro.DataAnnotationValuesExtractor/csFiles/Person.cs.png" width="580" height="580" />
37+
<hr />
38+
39+
<br />
40+
I have <b>coded</b> the file Values.cs
41+
<br />
42+
<img src="images/Pekspro.DataAnnotationValuesExtractor/csFiles/Values.cs.png" width="580" height="580" />
43+
<hr />
44+
<h3>And here are the <i>generated</i> files</h3>
45+
46+
<br />
47+
The file <i>generated</i> is Values.g.cs
48+
<br />
49+
<img src="images/Pekspro.DataAnnotationValuesExtractor/generated/Values.g.cs.png" width="580" height="580" />
50+
51+
<p>
52+
You can download the code and this page as pdf from
53+
<a target="_blank" href='https://ignatandrei.github.io/RSCG_Examples/v2/docs/Pekspro.DataAnnotationValuesExtractor'>
54+
https://ignatandrei.github.io/RSCG_Examples/v2/docs/Pekspro.DataAnnotationValuesExtractor
55+
</a>
56+
</p>
57+
58+
59+
<p>
60+
You can see the whole list at
61+
<a target="_blank" href='https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG'>
62+
https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG
63+
</a>
64+
</p>
65+

v2/book/list.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
</head>
1818
<body>
1919
<h1>
20-
This is the list of 256 RSCG with examples =>
20+
This is the list of 257 RSCG with examples =>
2121
</h1>
2222

2323
<table >
@@ -1050,6 +1050,10 @@ <h1>
10501050
<td>256</td>
10511051
<td><a href="examples/Sundew.DiscriminatedUnions.html">Sundew.DiscriminatedUnions</a></td>
10521052
</tr>
1053+
<tr>
1054+
<td>257</td>
1055+
<td><a href="examples/Pekspro.DataAnnotationValuesExtractor.html">Pekspro.DataAnnotationValuesExtractor</a></td>
1056+
</tr>
10531057
</table>
10541058

10551059

v2/book/pandocHTML.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@ input-files:
270270
- examples/ErrorOrX.html
271271
- examples/KnockOff.html
272272
- examples/Sundew.DiscriminatedUnions.html
273+
- examples/Pekspro.DataAnnotationValuesExtractor.html
273274

274275
# or you may use input-file: with a single value
275276
# defaults:
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"generator":{
3+
"name":"Pekspro.DataAnnotationValuesExtractor",
4+
"nuget":[
5+
"https://www.nuget.org/packages/Pekspro.DataAnnotationValuesExtractor/"
6+
],
7+
"link":"https://github.com/pekspro/DataAnnotationValuesExtractor",
8+
"author":"Pekspro",
9+
"source":"https://github.com/pekspro/DataAnnotationValuesExtractor"
10+
},
11+
"data":{
12+
"goodFor":["Generating code to extract values from data annotations in C#."],
13+
"csprojDemo":"Attr.csproj",
14+
"csFiles":["Program.cs","Person.cs","Values.cs"],
15+
"excludeDirectoryGenerated":[""],
16+
"includeAdditionalFiles":[""]
17+
},
18+
"links":{
19+
"blog":"",
20+
"video":""
21+
}
22+
}

0 commit comments

Comments
 (0)