From 143d30b33c2cb5e7f854e1c24403de7f5156070b Mon Sep 17 00:00:00 2001
From: Andrei Ignat
Date: Sat, 14 Dec 2024 10:13:15 +0200
Subject: [PATCH 1/3] added clone data
---
v2/GeneratorData/Category.cs | 1 +
v2/RSCGExamplesData/GeneratorDataRec.json | 8 +++++-
v2/RSCGExamplesData/NoExample.json | 7 +-----
v2/rscg_examples/Dolly/description.json | 22 ++++++++++++++++
v2/rscg_examples/Dolly/src/CloneData.sln | 25 +++++++++++++++++++
.../Dolly/src/CloneData/CloneData.csproj | 20 +++++++++++++++
.../Dolly/src/CloneData/Person.cs | 13 ++++++++++
.../Dolly/src/CloneData/Program.cs | 10 ++++++++
8 files changed, 99 insertions(+), 7 deletions(-)
create mode 100644 v2/rscg_examples/Dolly/description.json
create mode 100644 v2/rscg_examples/Dolly/src/CloneData.sln
create mode 100644 v2/rscg_examples/Dolly/src/CloneData/CloneData.csproj
create mode 100644 v2/rscg_examples/Dolly/src/CloneData/Person.cs
create mode 100644 v2/rscg_examples/Dolly/src/CloneData/Program.cs
diff --git a/v2/GeneratorData/Category.cs b/v2/GeneratorData/Category.cs
index 29c1c2a3c..17c2c4d22 100644
--- a/v2/GeneratorData/Category.cs
+++ b/v2/GeneratorData/Category.cs
@@ -31,5 +31,6 @@ public enum Category
Mediator=26,
SignalR=27,
WinAPI = 28,
+ Clone=29,
}
diff --git a/v2/RSCGExamplesData/GeneratorDataRec.json b/v2/RSCGExamplesData/GeneratorDataRec.json
index 93dc34393..98eaf2ecd 100644
--- a/v2/RSCGExamplesData/GeneratorDataRec.json
+++ b/v2/RSCGExamplesData/GeneratorDataRec.json
@@ -691,7 +691,7 @@
},
{
"ID": "CopyTo",
- "Category": 5,
+ "Category": 29,
"dtStart": "2024-02-19T00:00:00",
"show": true
},
@@ -1047,5 +1047,11 @@
"Category": 14,
"dtStart": "2024-12-02T00:00:00",
"show": true
+ },
+ {
+ "ID":"Dolly",
+ "Category": 29,
+ "dtStart": "2024-12-03T00:00:00",
+ "show": true
}
]
\ No newline at end of file
diff --git a/v2/RSCGExamplesData/NoExample.json b/v2/RSCGExamplesData/NoExample.json
index 7e72f2a15..b9dae2f30 100644
--- a/v2/RSCGExamplesData/NoExample.json
+++ b/v2/RSCGExamplesData/NoExample.json
@@ -844,11 +844,6 @@
"ID":182,
"name":"https://github.com/AlexNav73/CoreCraft",
"why":"later"
- },
- {
- "ID":183,
- "name":"https://github.com/AnderssonPeter/Dolly",
- "why":"later"
- },
+ }
]
\ No newline at end of file
diff --git a/v2/rscg_examples/Dolly/description.json b/v2/rscg_examples/Dolly/description.json
new file mode 100644
index 000000000..87aa7194d
--- /dev/null
+++ b/v2/rscg_examples/Dolly/description.json
@@ -0,0 +1,22 @@
+{
+ "generator":{
+ "name":"Dolly",
+ "nuget":[
+ "https://www.nuget.org/packages/Dolly/"
+ ],
+ "link":"https://github.com/AnderssonPeter/Dolly",
+ "author":"Peter Andersson",
+ "source":"https://github.com/AnderssonPeter/Dolly"
+ },
+ "data":{
+ "goodFor":["Clone objects with ease."],
+ "csprojDemo":"DollyDemo.csproj",
+ "csFiles":["Program.cs"],
+ "excludeDirectoryGenerated":[""],
+ "includeAdditionalFiles":[""]
+ },
+ "links":{
+ "blog":"",
+ "video":""
+ }
+}
\ No newline at end of file
diff --git a/v2/rscg_examples/Dolly/src/CloneData.sln b/v2/rscg_examples/Dolly/src/CloneData.sln
new file mode 100644
index 000000000..3373619ab
--- /dev/null
+++ b/v2/rscg_examples/Dolly/src/CloneData.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.13.35507.96 d17.13
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CloneData", "CloneData\CloneData.csproj", "{CA3E929D-2578-48A5-B098-13A7B4D81D03}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {CA3E929D-2578-48A5-B098-13A7B4D81D03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CA3E929D-2578-48A5-B098-13A7B4D81D03}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CA3E929D-2578-48A5-B098-13A7B4D81D03}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CA3E929D-2578-48A5-B098-13A7B4D81D03}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {324EECCB-2C9E-452F-84B0-CCCD40DAA208}
+ EndGlobalSection
+EndGlobal
diff --git a/v2/rscg_examples/Dolly/src/CloneData/CloneData.csproj b/v2/rscg_examples/Dolly/src/CloneData/CloneData.csproj
new file mode 100644
index 000000000..5142d608a
--- /dev/null
+++ b/v2/rscg_examples/Dolly/src/CloneData/CloneData.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ net9.0
+ enable
+ enable
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+ true
+ $(BaseIntermediateOutputPath)\GX
+
+
diff --git a/v2/rscg_examples/Dolly/src/CloneData/Person.cs b/v2/rscg_examples/Dolly/src/CloneData/Person.cs
new file mode 100644
index 000000000..f8641eed1
--- /dev/null
+++ b/v2/rscg_examples/Dolly/src/CloneData/Person.cs
@@ -0,0 +1,13 @@
+
+namespace CloneData;
+[Dolly.Clonable]
+public partial class Person
+{
+ public string FirstName { get; set; } = "";
+ public string LastName { get; set; } = "";
+ [Dolly.CloneIgnore]
+ public int Age { get; set; }
+ public string Name() => $"{FirstName} {LastName}";
+
+ public Person[] Childs { get; set; } = [];
+}
diff --git a/v2/rscg_examples/Dolly/src/CloneData/Program.cs b/v2/rscg_examples/Dolly/src/CloneData/Program.cs
new file mode 100644
index 000000000..66979e01f
--- /dev/null
+++ b/v2/rscg_examples/Dolly/src/CloneData/Program.cs
@@ -0,0 +1,10 @@
+// See https://aka.ms/new-console-template for more information
+using CloneData;
+
+Console.WriteLine("Hello, World!");
+Person p = new ();
+p.FirstName = "Andrei";
+p.LastName = "Ignat";
+p.Age = 54;
+var p1=p.DeepClone();
+Console.WriteLine(p1.Name());
\ No newline at end of file
From 03433cc51baeb2c67bbd38498c6f5a2ef3b10528 Mon Sep 17 00:00:00 2001
From: Andrei Ignat
Date: Sat, 14 Dec 2024 10:24:33 +0200
Subject: [PATCH 2/3] dolly
---
README.md | 115 +++---
v2/Generator/all.csv | 3 +-
v2/book/examples/Dolly.html | 74 ++++
v2/book/list.html | 6 +-
v2/book/pandocHTML.yaml | 1 +
v2/rscg_examples/Dolly/description.json | 4 +-
v2/rscg_examples/Dolly/nuget.txt | 1 +
v2/rscg_examples/Dolly/readme.txt | 86 +++++
v2/rscg_examples/Dolly/src/.tours/Dolly.tour | 54 +++
v2/rscg_examples/Dolly/video.json | 39 ++
.../docs/Categories/Clone.md | 8 +
.../docs/Categories/EnhancementClass.md | 52 ++-
v2/rscg_examples_site/docs/NoExamples.md | 208 ++++++-----
.../docs/RSCG-Examples/ApparatusAOT.md | 5 +-
.../docs/RSCG-Examples/AspectGenerator.md | 5 +-
.../docs/RSCG-Examples/CommonCodeGenerator.md | 5 +-
.../docs/RSCG-Examples/CopyTo.md | 82 +----
.../docs/RSCG-Examples/Dolly.md | 339 ++++++++++++++++++
.../docs/RSCG-Examples/DudNet.md | 5 +-
.../docs/RSCG-Examples/Enhanced.GetTypes.md | 5 +-
.../docs/RSCG-Examples/FactoryGenerator.md | 4 +-
.../docs/RSCG-Examples/FastGenericNew.md | 5 +-
.../docs/RSCG-Examples/GeneratorEquals.md | 5 +-
.../docs/RSCG-Examples/HsuSgSync.md | 5 +-
.../docs/RSCG-Examples/Immutype.md | 5 +-
.../docs/RSCG-Examples/Ling.Audit.md | 5 +-
.../docs/RSCG-Examples/Lombok.NET.md | 5 +-
.../docs/RSCG-Examples/M31.FluentAPI.md | 5 +-
.../docs/RSCG-Examples/MemoryPack.md | 5 +-
.../docs/RSCG-Examples/Meziantou.Polyfill.md | 5 +-
.../Microsoft.Extensions.Logging.md | 5 +-
...ns.Generators.OptionsValidatorGenerator.md | 5 +-
...ft.Interop.JavaScript.JSImportGenerator.md | 5 +-
.../RSCG-Examples/OptionToStringGenerator.md | 5 +-
.../RSCG-Examples/QueryStringGenerator.md | 5 +-
.../docs/RSCG-Examples/RSCG_Decorator.md | 5 +-
.../docs/RSCG-Examples/StaticReflection.md | 5 +-
.../docs/RSCG-Examples/SyncMethodGenerator.md | 5 +-
.../System.Runtime.InteropServices.md | 5 +-
.../System.Text.RegularExpressions.md | 5 +-
.../docs/RSCG-Examples/ThisClass.md | 5 +-
.../docs/RSCG-Examples/index.md | 34 +-
v2/rscg_examples_site/docs/about.md | 2 +-
v2/rscg_examples_site/docs/indexRSCG.md | 7 +-
.../src/components/HomepageFeatures/index.tsx | 2 +-
.../static/exports/RSCG.json | 10 +-
.../static/exports/RSCG.xlsx | Bin 10075 -> 10125 bytes
.../static/sources/Dolly.zip | Bin 0 -> 1653 bytes
.../static/sources/polytype.zip | Bin 435048 -> 1821 bytes
49 files changed, 871 insertions(+), 385 deletions(-)
create mode 100644 v2/book/examples/Dolly.html
create mode 100644 v2/rscg_examples/Dolly/nuget.txt
create mode 100644 v2/rscg_examples/Dolly/readme.txt
create mode 100644 v2/rscg_examples/Dolly/src/.tours/Dolly.tour
create mode 100644 v2/rscg_examples/Dolly/video.json
create mode 100644 v2/rscg_examples_site/docs/Categories/Clone.md
create mode 100644 v2/rscg_examples_site/docs/RSCG-Examples/Dolly.md
create mode 100644 v2/rscg_examples_site/static/sources/Dolly.zip
diff --git a/README.md b/README.md
index aa04e0d65..26dba3f89 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-# RSCG - 174 Examples of Roslyn Source Code Generators / 14 created by Microsoft /
+# RSCG - 175 Examples of Roslyn Source Code Generators / 14 created by Microsoft /
-## Latest Update : 2024-12-02 => 02 December 2024
+## Latest Update : 2024-12-03 => 03 December 2024
If you want to see examples with code, please click ***[List V2](https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG)***
@@ -8,7 +8,7 @@ If you want just those from Microsoft, please click ***[Microsoft](https://ignat
If you want to see by category, please click ***[category](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples)***
or click any category below
-[actor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#actor) -[aop](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#aop) -[api](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#api) -[bitwise](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#bitwise) -[blazor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#blazor) -[builder](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#builder) -[codetostring](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#codetostring) -[constructor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#constructor) -[database](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#database) -[dependencyinjection](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#dependencyinjection) -[disposer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#disposer) -[enhancementclass](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementclass) -[enhancementproject](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementproject) -[enum](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enum) -[filestocode](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#filestocode) -[functionalprogramming](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#functionalprogramming) -[hangfire](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#hangfire) -[interface](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#interface) -[mapper](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mapper) -[mediator](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mediator) -[mvvm](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mvvm) -[optimizer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#optimizer) -[primitiveobsession](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#primitiveobsession) -[serializer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#serializer) -[signalr](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#signalr) -[templating](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#templating) -[tests](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#tests) -[winapi](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#winapi) -
+[actor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#actor) -[aop](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#aop) -[api](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#api) -[bitwise](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#bitwise) -[blazor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#blazor) -[builder](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#builder) -[clone](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#clone) -[codetostring](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#codetostring) -[constructor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#constructor) -[database](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#database) -[dependencyinjection](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#dependencyinjection) -[disposer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#disposer) -[enhancementclass](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementclass) -[enhancementproject](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementproject) -[enum](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enum) -[filestocode](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#filestocode) -[functionalprogramming](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#functionalprogramming) -[hangfire](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#hangfire) -[interface](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#interface) -[mapper](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mapper) -[mediator](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mediator) -[mvvm](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mvvm) -[optimizer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#optimizer) -[primitiveobsession](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#primitiveobsession) -[serializer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#serializer) -[signalr](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#signalr) -[templating](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#templating) -[tests](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#tests) -[winapi](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#winapi) -
## If you have a Roslyn Source Code Generator, please create an issue.
@@ -20,8 +20,30 @@ If you want to be notified each time I add a new RSCG example , please click htt
## Content
-Those are the 174 Roslyn Source Code Generators that I have tested you can see and download source code example.
+Those are the 175 Roslyn Source Code Generators that I have tested you can see and download source code example.
( including 14 from Microsoft )
+### 175. [Dolly](https://ignatandrei.github.io/RSCG_Examples/v2/docs/Dolly) , in the [Clone](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#clone) category
+
+Generated on : 2024-12-03 => 03 December 2024
+
+
+ Expand
+
+
+
+Author: Peter Andersson
+
+Clone .net objects using source generation
+
+Nuget: [https://www.nuget.org/packages/Dolly/](https://www.nuget.org/packages/Dolly/)
+
+
+Link: [https://ignatandrei.github.io/RSCG_Examples/v2/docs/Dolly](https://ignatandrei.github.io/RSCG_Examples/v2/docs/Dolly)
+
+Source: [https://github.com/AnderssonPeter/Dolly](https://github.com/AnderssonPeter/Dolly)
+
+
+
### 174. [Dapper.AOT](https://ignatandrei.github.io/RSCG_Examples/v2/docs/Dapper.AOT) , in the [Database](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#database) category
Generated on : 2024-12-02 => 02 December 2024
@@ -1370,7 +1392,7 @@ Source: [https://github.com/pierre3/PlantUmlClassDiagramGenerator/](https://gith
-### 116. [CopyTo](https://ignatandrei.github.io/RSCG_Examples/v2/docs/CopyTo) , in the [EnhancementClass](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementclass) category
+### 116. [CopyTo](https://ignatandrei.github.io/RSCG_Examples/v2/docs/CopyTo) , in the [Clone](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#clone) category
Generated on : 2024-02-19 => 19 February 2024
@@ -4145,273 +4167,266 @@ Why I have not tested : later
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/AlexNav73/CoreCraft&body=https://github.com/AlexNav73/CoreCraft
-20) [https://github.com/AnderssonPeter/Dolly]( https://github.com/AnderssonPeter/Dolly) , https://github.com/AnderssonPeter/Dolly
-
-Why I have not tested : later
-
-https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/AnderssonPeter/Dolly&body=https://github.com/AnderssonPeter/Dolly
-
-
-21) [https://github.com/bjornhellander/TestInheritanceGenerator]( https://github.com/bjornhellander/TestInheritanceGenerator) , https://github.com/bjornhellander/TestInheritanceGenerator
+20) [https://github.com/bjornhellander/TestInheritanceGenerator]( https://github.com/bjornhellander/TestInheritanceGenerator) , https://github.com/bjornhellander/TestInheritanceGenerator
Why I have not tested : later
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/bjornhellander/TestInheritanceGenerator&body=https://github.com/bjornhellander/TestInheritanceGenerator
-22) [https://github.com/immediateplatform/immediate.apis]( https://github.com/immediateplatform/immediate.apis) , https://github.com/immediateplatform/immediate.apis
+21) [https://github.com/immediateplatform/immediate.apis]( https://github.com/immediateplatform/immediate.apis) , https://github.com/immediateplatform/immediate.apis
Why I have not tested : later
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/immediateplatform/immediate.apis&body=https://github.com/immediateplatform/immediate.apis
-23) [https://github.com/JasonBock/CslaGeneratorSerialization]( https://github.com/JasonBock/CslaGeneratorSerialization) , https://github.com/JasonBock/CslaGeneratorSerialization
+22) [https://github.com/JasonBock/CslaGeneratorSerialization]( https://github.com/JasonBock/CslaGeneratorSerialization) , https://github.com/JasonBock/CslaGeneratorSerialization
Why I have not tested : too complicated for me, need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/JasonBock/CslaGeneratorSerialization&body=https://github.com/JasonBock/CslaGeneratorSerialization
-24) [https://github.com/MeltyPlayer/Schema]( https://github.com/MeltyPlayer/Schema) , https://github.com/MeltyPlayer/Schema
+23) [https://github.com/MeltyPlayer/Schema]( https://github.com/MeltyPlayer/Schema) , https://github.com/MeltyPlayer/Schema
Why I have not tested : too complicated for me, need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/MeltyPlayer/Schema&body=https://github.com/MeltyPlayer/Schema
-25) [https://github.com/OrgEleCho/EleCho.Internationalization]( https://github.com/OrgEleCho/EleCho.Internationalization) , https://github.com/OrgEleCho/EleCho.Internationalization
+24) [https://github.com/OrgEleCho/EleCho.Internationalization]( https://github.com/OrgEleCho/EleCho.Internationalization) , https://github.com/OrgEleCho/EleCho.Internationalization
Why I have not tested : issue opened
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/OrgEleCho/EleCho.Internationalization&body=https://github.com/OrgEleCho/EleCho.Internationalization
-26) [https://github.com/rosslight/Darp.BinaryObjects]( https://github.com/rosslight/Darp.BinaryObjects) , https://github.com/rosslight/Darp.BinaryObjects
+25) [https://github.com/rosslight/Darp.BinaryObjects]( https://github.com/rosslight/Darp.BinaryObjects) , https://github.com/rosslight/Darp.BinaryObjects
Why I have not tested : later
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/rosslight/Darp.BinaryObjects&body=https://github.com/rosslight/Darp.BinaryObjects
-27) [https://github.com/Stepami/visitor-net]( https://github.com/Stepami/visitor-net) , https://github.com/Stepami/visitor-net
+26) [https://github.com/Stepami/visitor-net]( https://github.com/Stepami/visitor-net) , https://github.com/Stepami/visitor-net
Why I have not tested : later
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/Stepami/visitor-net&body=https://github.com/Stepami/visitor-net
-28) [https://github.com/SzymonHalucha/Minerals.AutoCommands]( https://github.com/SzymonHalucha/Minerals.AutoCommands) , https://github.com/SzymonHalucha/Minerals.AutoCommands
+27) [https://github.com/SzymonHalucha/Minerals.AutoCommands]( https://github.com/SzymonHalucha/Minerals.AutoCommands) , https://github.com/SzymonHalucha/Minerals.AutoCommands
Why I have not tested : later
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=https://github.com/SzymonHalucha/Minerals.AutoCommands&body=https://github.com/SzymonHalucha/Minerals.AutoCommands
-29) [Intellenum]( https://github.com/SteveDunn/Intellenum) , https://github.com/SteveDunn/Intellenum
+28) [Intellenum]( https://github.com/SteveDunn/Intellenum) , https://github.com/SteveDunn/Intellenum
Why I have not tested : not understand how to use
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=Intellenum&body=https://github.com/SteveDunn/Intellenum
-30) [Jos.Enumeration,]( https://github.com/joseftw/jos.enumeration) , https://github.com/joseftw/jos.enumeration
+29) [Jos.Enumeration,]( https://github.com/joseftw/jos.enumeration) , https://github.com/joseftw/jos.enumeration
Why I have not tested : too complicated for me, need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=Jos.Enumeration,&body=https://github.com/joseftw/jos.enumeration
-31) [laker]( https://github.com/Lakerfield/Lakerfield.Rpc) , https://github.com/Lakerfield/Lakerfield.Rpc
+30) [laker]( https://github.com/Lakerfield/Lakerfield.Rpc) , https://github.com/Lakerfield/Lakerfield.Rpc
Why I have not tested : later
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=laker&body=https://github.com/Lakerfield/Lakerfield.Rpc
-32) [LoggingDecoratorGenerator]( https://github.com/DavidFineboym/LoggingDecoratorGenerator) , https://github.com/DavidFineboym/LoggingDecoratorGenerator
+31) [LoggingDecoratorGenerator]( https://github.com/DavidFineboym/LoggingDecoratorGenerator) , https://github.com/DavidFineboym/LoggingDecoratorGenerator
Why I have not tested : Microsoft have done same feature
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=LoggingDecoratorGenerator&body=https://github.com/DavidFineboym/LoggingDecoratorGenerator
-33) [lucide-blazor]( https://github.com/brecht-vde/lucide-blazor/) , https://github.com/brecht-vde/lucide-blazor/
+32) [lucide-blazor]( https://github.com/brecht-vde/lucide-blazor/) , https://github.com/brecht-vde/lucide-blazor/
Why I have not tested : issue opened
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=lucide-blazor&body=https://github.com/brecht-vde/lucide-blazor/
-34) [ManagedDotnetProfiler]( https://github.com/kevingosse/ManagedDotnetProfiler) , https://github.com/kevingosse/ManagedDotnetProfiler
+33) [ManagedDotnetProfiler]( https://github.com/kevingosse/ManagedDotnetProfiler) , https://github.com/kevingosse/ManagedDotnetProfiler
Why I have not tested : too complicated for me, need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=ManagedDotnetProfiler&body=https://github.com/kevingosse/ManagedDotnetProfiler
-35) [Maui.BindableProperty.Generator]( https://github.com/rrmanzano/maui-bindableproperty-generator) , https://github.com/rrmanzano/maui-bindableproperty-generator
+34) [Maui.BindableProperty.Generator]( https://github.com/rrmanzano/maui-bindableproperty-generator) , https://github.com/rrmanzano/maui-bindableproperty-generator
Why I have not tested : too complicated for me, need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=Maui.BindableProperty.Generator&body=https://github.com/rrmanzano/maui-bindableproperty-generator
-36) [Minerals.AutoCQRS]( https://github.com/SzymonHalucha/Minerals.AutoCQRS) , https://github.com/SzymonHalucha/Minerals.AutoCQRS
+35) [Minerals.AutoCQRS]( https://github.com/SzymonHalucha/Minerals.AutoCQRS) , https://github.com/SzymonHalucha/Minerals.AutoCQRS
Why I have not tested : later
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=Minerals.AutoCQRS&body=https://github.com/SzymonHalucha/Minerals.AutoCQRS
-37) [Minerals.AutoDomain]( https://github.com/SzymonHalucha/Minerals.AutoDomain) , https://github.com/SzymonHalucha/Minerals.AutoDomain
+36) [Minerals.AutoDomain]( https://github.com/SzymonHalucha/Minerals.AutoDomain) , https://github.com/SzymonHalucha/Minerals.AutoDomain
Why I have not tested : later
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=Minerals.AutoDomain&body=https://github.com/SzymonHalucha/Minerals.AutoDomain
-38) [MvvmGen]( https://github.com/thomasclaudiushuber/mvvmgen) , https://github.com/thomasclaudiushuber/mvvmgen
+37) [MvvmGen]( https://github.com/thomasclaudiushuber/mvvmgen) , https://github.com/thomasclaudiushuber/mvvmgen
Why I have not tested : too complicated for me, need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=MvvmGen&body=https://github.com/thomasclaudiushuber/mvvmgen
-39) [observable]( https://github.com/notanaverageman/Bindables) , https://github.com/notanaverageman/Bindables
+38) [observable]( https://github.com/notanaverageman/Bindables) , https://github.com/notanaverageman/Bindables
Why I have not tested : later
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=observable&body=https://github.com/notanaverageman/Bindables
-40) [Overloader]( https://github.com/emptycoder/Overloader) , https://github.com/emptycoder/Overloader
+39) [Overloader]( https://github.com/emptycoder/Overloader) , https://github.com/emptycoder/Overloader
Why I have not tested : too complicated for me, need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=Overloader&body=https://github.com/emptycoder/Overloader
-41) [PolySharp]( https://github.com/Sergio0694/PolySharp) , https://github.com/Sergio0694/PolySharp
+40) [PolySharp]( https://github.com/Sergio0694/PolySharp) , https://github.com/Sergio0694/PolySharp
Why I have not tested : too complicated for me, need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=PolySharp&body=https://github.com/Sergio0694/PolySharp
-42) [Pure.DI]( https://github.com/DevTeam/Pure.DI) , https://github.com/DevTeam/Pure.DI
+41) [Pure.DI]( https://github.com/DevTeam/Pure.DI) , https://github.com/DevTeam/Pure.DI
Why I have not tested : too complicated for me, need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=Pure.DI&body=https://github.com/DevTeam/Pure.DI
-43) [schema]( https://github.com/MeltyPlayer/Schema) , https://github.com/MeltyPlayer/Schema
+42) [schema]( https://github.com/MeltyPlayer/Schema) , https://github.com/MeltyPlayer/Schema
Why I have not tested : too complicated for me, need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=schema&body=https://github.com/MeltyPlayer/Schema
-44) [SerdeDn]( https://github.com/serdedotnet/serde) , https://github.com/serdedotnet/serde
+43) [SerdeDn]( https://github.com/serdedotnet/serde) , https://github.com/serdedotnet/serde
Why I have not tested : serializer. Done by MSFT with System.Text.Json
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=SerdeDn&body=https://github.com/serdedotnet/serde
-45) [SogePoco]( https://github.com/d-p-y/SogePoco) , https://github.com/d-p-y/SogePoco
+44) [SogePoco]( https://github.com/d-p-y/SogePoco) , https://github.com/d-p-y/SogePoco
Why I have not tested : too complicated for me, need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=SogePoco&body=https://github.com/d-p-y/SogePoco
-46) [SourceCrafter.HttpServiceClientGenerator]( https://github.com/pedro-gilmora/SourceCrafter.HttpServiceClientGenerator/) , https://github.com/pedro-gilmora/SourceCrafter.HttpServiceClientGenerator/
+45) [SourceCrafter.HttpServiceClientGenerator]( https://github.com/pedro-gilmora/SourceCrafter.HttpServiceClientGenerator/) , https://github.com/pedro-gilmora/SourceCrafter.HttpServiceClientGenerator/
Why I have not tested : later
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=SourceCrafter.HttpServiceClientGenerator&body=https://github.com/pedro-gilmora/SourceCrafter.HttpServiceClientGenerator/
-47) [ST.NSwag.ServerSourceGenerator]( https://github.com/s-tarasov/ST.NSwag.ServerSourceGenerator) , https://github.com/s-tarasov/ST.NSwag.ServerSourceGenerator
+46) [ST.NSwag.ServerSourceGenerator]( https://github.com/s-tarasov/ST.NSwag.ServerSourceGenerator) , https://github.com/s-tarasov/ST.NSwag.ServerSourceGenerator
Why I have not tested : swagger,need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=ST.NSwag.ServerSourceGenerator&body=https://github.com/s-tarasov/ST.NSwag.ServerSourceGenerator
-48) [StrongInject]( https://github.com/YairHalberstadt/stronginject/) , https://github.com/YairHalberstadt/stronginject/
+47) [StrongInject]( https://github.com/YairHalberstadt/stronginject/) , https://github.com/YairHalberstadt/stronginject/
Why I have not tested : too complicated for me, need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=StrongInject&body=https://github.com/YairHalberstadt/stronginject/
-49) [TeuJson]( https://github.com/Terria-K/TeuJson) , https://github.com/Terria-K/TeuJson
+48) [TeuJson]( https://github.com/Terria-K/TeuJson) , https://github.com/Terria-K/TeuJson
Why I have not tested : json a class, was done in System.Text.Json
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=TeuJson&body=https://github.com/Terria-K/TeuJson
-50) [Tinyhand]( https://github.com/archi-Doc/Tinyhand) , https://github.com/archi-Doc/Tinyhand
+49) [Tinyhand]( https://github.com/archi-Doc/Tinyhand) , https://github.com/archi-Doc/Tinyhand
Why I have not tested : tried, need documentation
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=Tinyhand&body=https://github.com/archi-Doc/Tinyhand
-51) [Tortuga.Shipwright]( https://github.com/TortugaResearch/Tortuga.Shipwright) , https://github.com/TortugaResearch/Tortuga.Shipwright
+50) [Tortuga.Shipwright]( https://github.com/TortugaResearch/Tortuga.Shipwright) , https://github.com/TortugaResearch/Tortuga.Shipwright
Why I have not tested : too complicated for me, need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=Tortuga.Shipwright&body=https://github.com/TortugaResearch/Tortuga.Shipwright
-52) [TupleOverloadGenerator]( https://github.com/ProphetLamb/TupleOverloadGenerator) , https://github.com/ProphetLamb/TupleOverloadGenerator
+51) [TupleOverloadGenerator]( https://github.com/ProphetLamb/TupleOverloadGenerator) , https://github.com/ProphetLamb/TupleOverloadGenerator
Why I have not tested : too complicated for me, need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=TupleOverloadGenerator&body=https://github.com/ProphetLamb/TupleOverloadGenerator
-53) [TypealizR]( https://github.com/earloc/TypealizR) , https://github.com/earloc/TypealizR
+52) [TypealizR]( https://github.com/earloc/TypealizR) , https://github.com/earloc/TypealizR
Why I have not tested : depends on Microsoft.Extensions.Localization
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=TypealizR&body=https://github.com/earloc/TypealizR
-54) [UnitTestBlazor]( https://github.com/bUnit-dev/bUnit) , https://github.com/bUnit-dev/bUnit
+53) [UnitTestBlazor]( https://github.com/bUnit-dev/bUnit) , https://github.com/bUnit-dev/bUnit
Why I have not tested : issue opened
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=UnitTestBlazor&body=https://github.com/bUnit-dev/bUnit
-55) [ValueLink]( https://github.com/archi-Doc/ValueLink) , https://github.com/archi-Doc/ValueLink
+54) [ValueLink]( https://github.com/archi-Doc/ValueLink) , https://github.com/archi-Doc/ValueLink
Why I have not tested : too complicated for me, need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=ValueLink&body=https://github.com/archi-Doc/ValueLink
-56) [VisitorPatternGenerator]( https://github.com/hikarin522/VisitorPatternGenerator/) , https://github.com/hikarin522/VisitorPatternGenerator/
+55) [VisitorPatternGenerator]( https://github.com/hikarin522/VisitorPatternGenerator/) , https://github.com/hikarin522/VisitorPatternGenerator/
Why I have not tested : issue opened
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=VisitorPatternGenerator&body=https://github.com/hikarin522/VisitorPatternGenerator/
-57) [Visor]( https://github.com/Tinkoff/Visor) , https://github.com/Tinkoff/Visor
+56) [Visor]( https://github.com/Tinkoff/Visor) , https://github.com/Tinkoff/Visor
Why I have not tested : too complicated for me, need help
https://github.com/ignatandrei/RSCG_Examples/issues/new?title=Visor&body=https://github.com/Tinkoff/Visor
-58) [WrapperValueObject]( https://github.com/martinothamar/WrapperValueObject) , https://github.com/martinothamar/WrapperValueObject
+57) [WrapperValueObject]( https://github.com/martinothamar/WrapperValueObject) , https://github.com/martinothamar/WrapperValueObject
Why I have not tested : not maintained as in readme
diff --git a/v2/Generator/all.csv b/v2/Generator/all.csv
index afcf34642..3ee5e1cea 100644
--- a/v2/Generator/all.csv
+++ b/v2/Generator/all.csv
@@ -114,7 +114,7 @@ Nr,Key,Source,Category
113,sourcedepend, https://github.com/crwsolutions/sourcedepend,Constructor
114,corecraft, https://github.com/AlexNav73/CoreCraft,FilesToCode
115,UnionsGenerator, https://github.com/PaulBraetz/RhoMicro.CodeAnalysis/,FunctionalProgramming
-116,CopyTo, https://github.com/PaulBraetz/RhoMicro.CodeAnalysis,EnhancementClass
+116,CopyTo, https://github.com/PaulBraetz/RhoMicro.CodeAnalysis,Clone
117,PlantUmlClassDiagramGenerator, https://github.com/pierre3/PlantUmlClassDiagramGenerator/,EnhancementProject
118,RSCG_Wait, https://github.com/ignatandrei/RSCG_WaitAndOptions,EnhancementProject
119,AutoGen, https://github.com/Antelcat/AutoGen,Mapper
@@ -173,3 +173,4 @@ Nr,Key,Source,Category
172,GoLive.Generator.BlazorInterop, https://github.com/surgicalcoder/BlazorInteropGenerator,Blazor
173,Microsoft.Windows.CsWin32, https://github.com/microsoft/CsWin32,WinAPI
174,Dapper.AOT, https://github.com/DapperLib/DapperAOT,Database
+175,Dolly, https://github.com/AnderssonPeter/Dolly,Clone
diff --git a/v2/book/examples/Dolly.html b/v2/book/examples/Dolly.html
new file mode 100644
index 000000000..3508a9036
--- /dev/null
+++ b/v2/book/examples/Dolly.html
@@ -0,0 +1,74 @@
+
+RSCG nr 175 : Dolly
+
+Info
+Nuget : https://www.nuget.org/packages/Dolly/
+
+You can find more details at : https://github.com/AnderssonPeter/Dolly
+
+Author :Peter Andersson
+
+Source : https://github.com/AnderssonPeter/Dolly
+
+About
+
+Clone objects with ease.
+
+
+ How to use
+
+
+ Add reference to the Dolly in the csproj
+
+
+
+This was for me the starting code
+
+
+ I have coded the file Program.cs
+
+
+
+
+
+ I have coded the file Person.cs
+
+
+
+ And here are the generated files
+
+
+ The file generated is ClonableAttribute.g.cs
+
+
+
+
+ The file generated is CloneIgnoreAttribute.g.cs
+
+
+
+
+ The file generated is IClonable.g.cs
+
+
+
+
+ The file generated is Person.g.cs
+
+
+
+
+ You can download the code and this page as pdf from
+
+ https://ignatandrei.github.io/RSCG_Examples/v2/docs/Dolly
+
+
+
+
+
+ You can see the whole list at
+
+ https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG
+
+
+
diff --git a/v2/book/list.html b/v2/book/list.html
index 8d10902b2..b8744556f 100644
--- a/v2/book/list.html
+++ b/v2/book/list.html
@@ -17,7 +17,7 @@
-This is the list of 174 RSCG with examples =>
+This is the list of 175 RSCG with examples =>
diff --git a/v2/book/pandocHTML.yaml b/v2/book/pandocHTML.yaml
index 5f7ff59b3..4539c725a 100644
--- a/v2/book/pandocHTML.yaml
+++ b/v2/book/pandocHTML.yaml
@@ -188,6 +188,7 @@ input-files:
- examples/GoLive.Generator.BlazorInterop.html
- examples/Microsoft.Windows.CsWin32.html
- examples/Dapper.AOT.html
+- examples/Dolly.html
# or you may use input-file: with a single value
# defaults:
diff --git a/v2/rscg_examples/Dolly/description.json b/v2/rscg_examples/Dolly/description.json
index 87aa7194d..1a0f23fc6 100644
--- a/v2/rscg_examples/Dolly/description.json
+++ b/v2/rscg_examples/Dolly/description.json
@@ -10,8 +10,8 @@
},
"data":{
"goodFor":["Clone objects with ease."],
- "csprojDemo":"DollyDemo.csproj",
- "csFiles":["Program.cs"],
+ "csprojDemo":"CloneData.csproj",
+ "csFiles":["Program.cs","Person.cs"],
"excludeDirectoryGenerated":[""],
"includeAdditionalFiles":[""]
},
diff --git a/v2/rscg_examples/Dolly/nuget.txt b/v2/rscg_examples/Dolly/nuget.txt
new file mode 100644
index 000000000..6edaae15e
--- /dev/null
+++ b/v2/rscg_examples/Dolly/nuget.txt
@@ -0,0 +1 @@
+Clone .net objects using source generation
\ No newline at end of file
diff --git a/v2/rscg_examples/Dolly/readme.txt b/v2/rscg_examples/Dolly/readme.txt
new file mode 100644
index 000000000..8de759232
--- /dev/null
+++ b/v2/rscg_examples/Dolly/readme.txt
@@ -0,0 +1,86 @@
+
+
+
+
+
+
Dolly
+
+
+ Clone .net objects using source generation
+
+
+ ·
+ Report Bug
+ ·
+ Request Feature
+ ·
+
+
+
+
+[![NuGet version](https://badge.fury.io/nu/Dolly.svg)](https://www.nuget.org/packages/Dolly)
+[![Nuget](https://img.shields.io/nuget/dt/Dolly)](https://www.nuget.org/packages/Dolly)
+[![GitHub license](https://img.shields.io/badge/license-Apache%202-blue.svg)](https://raw.githubusercontent.com/AnderssonPeter/Dolly/main/LICENSE)
+
+[![unit tests](https://img.shields.io/github/actions/workflow/status/AnderssonPeter/Dolly/test.yml?branch=main&style=flat-square&label=unit%20tests)](https://github.com/AnderssonPeter/Dolly/actions/workflows/test.yml)
+[![Testspace tests](https://img.shields.io/testspace/tests/AnderssonPeter/AnderssonPeter:Dolly/main?style=flat-square)](https://anderssonpeter.testspace.com/spaces/293120/result_sets)
+[![Coverage Status](https://img.shields.io/coveralls/github/AnderssonPeter/Dolly?style=flat-square)](https://coveralls.io/github/AnderssonPeter/Dolly)
+
+## Table of Contents
+* [About the Project](#about-the-project)
+* [Getting Started](#getting-started)
+* [Example](#example)
+* [Benchmarks](#Benchmarks)
+
+## About The Project
+Generate c# code to clone objects on the fly.
+
+## Getting Started
+* Add the `Dolly` nuget and add `[Clonable]` attribute to a class and ensure that the class is marked as `partial`.
+* Add `[CloneIgnore]` to any property or field that you don't want to include in the clone.
+* Call `DeepClone()` or `ShallowClone()` on the object.
+
+### Example
+```C#
+[Clonable]
+public partial class SimpleClass
+{
+ public string First { get; set; }
+ public int Second { get; set; }
+ [CloneIgnore]
+ public float DontClone { get; set; }
+}
+```
+Should generate
+```C#
+partial class SimpleClass : IClonable
+{
+
+ object ICloneable.Clone() => this.DeepClone();
+
+ public SimpleClass DeepClone() =>
+ new SimpleClass()
+ {
+ First = First,
+ Second = Second
+ };
+
+ public SimpleClass ShallowClone() =>
+ new SimpleClass()
+ {
+ First = First,
+ Second = Second
+ };
+}
+```
+
+## Benchmarks
+
+| Method | Mean | Error | StdDev | Ratio | RatioSD | Gen0 | Gen1 | Allocated |
+|---------------- |------------:|----------:|----------:|-------:|--------:|-------:|-------:|----------:|
+| Dolly | 124.5 ns | 1.59 ns | 1.49 ns | 1.00 | 0.02 | 0.0362 | - | 608 B |
+| DeepCloner | 457.7 ns | 7.01 ns | 6.56 ns | 3.68 | 0.07 | 0.0830 | - | 1392 B |
+| CloneExtensions | 566.2 ns | 9.61 ns | 8.52 ns | 4.55 | 0.08 | 0.0896 | - | 1504 B |
+| NClone | 4,308.0 ns | 62.01 ns | 58.01 ns | 34.61 | 0.61 | 0.5112 | 0.0076 | 8584 B |
+| FastCloner | 15,310.6 ns | 221.85 ns | 207.52 ns | 123.00 | 2.16 | 0.3967 | - | 6800 B |
+| AnyClone | 19,011.9 ns | 354.27 ns | 347.94 ns | 152.74 | 3.25 | 2.4414 | - | 41256 B |
\ No newline at end of file
diff --git a/v2/rscg_examples/Dolly/src/.tours/Dolly.tour b/v2/rscg_examples/Dolly/src/.tours/Dolly.tour
new file mode 100644
index 000000000..ca2471e14
--- /dev/null
+++ b/v2/rscg_examples/Dolly/src/.tours/Dolly.tour
@@ -0,0 +1,54 @@
+
+{
+ "$schema": "https://aka.ms/codetour-schema",
+ "title": "Dolly",
+ "steps":
+ [
+ {
+ "file": "CloneData/CloneData.csproj",
+ "description": "First, we add Nuget [Dolly](https://www.nuget.org/packages/Dolly/) in csproj ",
+ "pattern": "Dolly"
+ }
+
+ ,{
+ "file": "CloneData/Person.cs",
+ "description": "File Person.cs ",
+ "pattern": "this is the code"
+ }
+
+ ,{
+ "file": "CloneData/Program.cs",
+ "description": "File Program.cs \r\n>> dotnet run --project CloneData/CloneData.csproj ",
+ "pattern": "this is the code"
+ }
+
+
+ ,{
+ "file": "CloneData/obj/GX/Dolly/Dolly.DollyGenerator/Person.g.cs",
+ "description": "Generated File 4 from 4 : Person.g.cs ",
+ "line": 1
+ }
+
+ ,{
+ "file": "CloneData/obj/GX/Dolly/Dolly.DollyGenerator/IClonable.g.cs",
+ "description": "Generated File 3 from 4 : IClonable.g.cs ",
+ "line": 1
+ }
+
+ ,{
+ "file": "CloneData/obj/GX/Dolly/Dolly.DollyGenerator/CloneIgnoreAttribute.g.cs",
+ "description": "Generated File 2 from 4 : CloneIgnoreAttribute.g.cs ",
+ "line": 1
+ }
+
+ ,{
+ "file": "CloneData/obj/GX/Dolly/Dolly.DollyGenerator/ClonableAttribute.g.cs",
+ "description": "Generated File 1 from 4 : ClonableAttribute.g.cs ",
+ "line": 1
+ }
+
+ ],
+
+ "ref": "main"
+
+}
\ No newline at end of file
diff --git a/v2/rscg_examples/Dolly/video.json b/v2/rscg_examples/Dolly/video.json
new file mode 100644
index 000000000..1f9ac7738
--- /dev/null
+++ b/v2/rscg_examples/Dolly/video.json
@@ -0,0 +1,39 @@
+{
+ "scriptName": "Dolly",
+ "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 Dolly . Clone objects with ease. ."},
+{"typeStep":"browser","arg":"https://www.nuget.org/packages/Dolly/"},
+{"typeStep":"text","arg": "The whole example is here"},
+{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Dolly"},
+{"typeStep":"text","arg": "You can download the code from here"},
+{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Dolly#download-example-net--c-"},
+{"typeStep":"text","arg":"Here is the code downloaded "},
+{"typeStep":"exec","arg":"explorer.exe /select,D:\\gth\\RSCG_Examples\\v2\\rscg_examples\\Dolly\\src\\CloneData.sln"},
+{"typeStep":"text","arg": "So , let's start the project with Visual Studio Code "},
+{"typeStep":"stepvscode","arg": "-n D:\\gth\\RSCG_Examples\\v2\\rscg_examples\\Dolly\\src"},
+
+{"typeStep":"text","arg": "To use it ,you will put the Nuget Dolly into the csproj "},
+
+{"typeStep":"stepvscode","arg": "-r -g D:\\gth\\RSCG_Examples\\v2\\rscg_examples\\Dolly\\src\\CloneData\\CloneData.csproj"},
+
+{"typeStep":"text","arg": "And now I will show you an example of using Dolly"},
+
+{"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":"CloneData.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/Dolly#download-example-net--c-",
+SpeakTest=" "},
+{"typeStep":"waitseconds","arg":"30"},
+]
+}
diff --git a/v2/rscg_examples_site/docs/Categories/Clone.md b/v2/rscg_examples_site/docs/Categories/Clone.md
new file mode 100644
index 000000000..3a6f5e80d
--- /dev/null
+++ b/v2/rscg_examples_site/docs/Categories/Clone.md
@@ -0,0 +1,8 @@
+Clone
+
+Number RSCG: 2
+
+ 1 [CopyTo](/docs/CopyTo)
+
+ 2 [Dolly](/docs/Dolly)
+
\ No newline at end of file
diff --git a/v2/rscg_examples_site/docs/Categories/EnhancementClass.md b/v2/rscg_examples_site/docs/Categories/EnhancementClass.md
index b6a2f7bf5..44c6af371 100644
--- a/v2/rscg_examples_site/docs/Categories/EnhancementClass.md
+++ b/v2/rscg_examples_site/docs/Categories/EnhancementClass.md
@@ -1,6 +1,6 @@
EnhancementClass
-Number RSCG: 28
+Number RSCG: 27
1 [ApparatusAOT](/docs/ApparatusAOT)
@@ -8,53 +8,51 @@ Number RSCG: 28
3 [CommonCodeGenerator](/docs/CommonCodeGenerator)
- 4 [CopyTo](/docs/CopyTo)
+ 4 [DudNet](/docs/DudNet)
- 5 [DudNet](/docs/DudNet)
+ 5 [Enhanced.GetTypes](/docs/Enhanced.GetTypes)
- 6 [Enhanced.GetTypes](/docs/Enhanced.GetTypes)
+ 6 [FastGenericNew](/docs/FastGenericNew)
- 7 [FastGenericNew](/docs/FastGenericNew)
+ 7 [GeneratorEquals](/docs/GeneratorEquals)
- 8 [GeneratorEquals](/docs/GeneratorEquals)
+ 8 [HsuSgSync](/docs/HsuSgSync)
- 9 [HsuSgSync](/docs/HsuSgSync)
+ 9 [Immutype](/docs/Immutype)
- 10 [Immutype](/docs/Immutype)
+ 10 [Ling.Audit](/docs/Ling.Audit)
- 11 [Ling.Audit](/docs/Ling.Audit)
+ 11 [Lombok.NET](/docs/Lombok.NET)
- 12 [Lombok.NET](/docs/Lombok.NET)
+ 12 [M31.FluentAPI](/docs/M31.FluentAPI)
- 13 [M31.FluentAPI](/docs/M31.FluentAPI)
+ 13 [MemoryPack](/docs/MemoryPack)
- 14 [MemoryPack](/docs/MemoryPack)
+ 14 [Meziantou.Polyfill](/docs/Meziantou.Polyfill)
- 15 [Meziantou.Polyfill](/docs/Meziantou.Polyfill)
+ 15 [Microsoft.Extensions.Logging](/docs/Microsoft.Extensions.Logging)
- 16 [Microsoft.Extensions.Logging](/docs/Microsoft.Extensions.Logging)
+ 16 [Microsoft.Extensions.Options.Generators.OptionsValidatorGenerator](/docs/Microsoft.Extensions.Options.Generators.OptionsValidatorGenerator)
- 17 [Microsoft.Extensions.Options.Generators.OptionsValidatorGenerator](/docs/Microsoft.Extensions.Options.Generators.OptionsValidatorGenerator)
+ 17 [Microsoft.Interop.JavaScript.JSImportGenerator](/docs/Microsoft.Interop.JavaScript.JSImportGenerator)
- 18 [Microsoft.Interop.JavaScript.JSImportGenerator](/docs/Microsoft.Interop.JavaScript.JSImportGenerator)
+ 18 [OptionToStringGenerator](/docs/OptionToStringGenerator)
- 19 [OptionToStringGenerator](/docs/OptionToStringGenerator)
+ 19 [QueryStringGenerator](/docs/QueryStringGenerator)
- 20 [QueryStringGenerator](/docs/QueryStringGenerator)
+ 20 [RSCG_Decorator](/docs/RSCG_Decorator)
- 21 [RSCG_Decorator](/docs/RSCG_Decorator)
+ 21 [RSCG_UtilityTypes](/docs/RSCG_UtilityTypes)
- 22 [RSCG_UtilityTypes](/docs/RSCG_UtilityTypes)
+ 22 [StaticReflection](/docs/StaticReflection)
- 23 [StaticReflection](/docs/StaticReflection)
+ 23 [SyncMethodGenerator](/docs/SyncMethodGenerator)
- 24 [SyncMethodGenerator](/docs/SyncMethodGenerator)
+ 24 [System.Runtime.InteropServices](/docs/System.Runtime.InteropServices)
- 25 [System.Runtime.InteropServices](/docs/System.Runtime.InteropServices)
+ 25 [System.Text.RegularExpressions](/docs/System.Text.RegularExpressions)
- 26 [System.Text.RegularExpressions](/docs/System.Text.RegularExpressions)
+ 26 [TelemetryLogging](/docs/TelemetryLogging)
- 27 [TelemetryLogging](/docs/TelemetryLogging)
-
- 28 [ThisClass](/docs/ThisClass)
+ 27 [ThisClass](/docs/ThisClass)
\ No newline at end of file
diff --git a/v2/rscg_examples_site/docs/NoExamples.md b/v2/rscg_examples_site/docs/NoExamples.md
index 4289a563d..d5bf193f0 100644
--- a/v2/rscg_examples_site/docs/NoExamples.md
+++ b/v2/rscg_examples_site/docs/NoExamples.md
@@ -274,415 +274,411 @@ Why I have not put example: old ISourceGenerator
Why I have not put example: later
-68)https://github.com/AnderssonPeter/Dolly https://github.com/AnderssonPeter/Dolly
+68)https://github.com/bjornhellander/TestInheritanceGenerator https://github.com/bjornhellander/TestInheritanceGenerator
Why I have not put example: later
-69)https://github.com/bjornhellander/TestInheritanceGenerator https://github.com/bjornhellander/TestInheritanceGenerator
+69)https://github.com/immediateplatform/immediate.apis https://github.com/immediateplatform/immediate.apis
Why I have not put example: later
-70)https://github.com/immediateplatform/immediate.apis https://github.com/immediateplatform/immediate.apis
-
-Why I have not put example: later
-
-71)https://github.com/JasonBock/CslaGeneratorSerialization https://github.com/JasonBock/CslaGeneratorSerialization
+70)https://github.com/JasonBock/CslaGeneratorSerialization https://github.com/JasonBock/CslaGeneratorSerialization
Why I have not put example: too complicated for me, need help
-72)https://github.com/MeltyPlayer/Schema https://github.com/MeltyPlayer/Schema
+71)https://github.com/MeltyPlayer/Schema https://github.com/MeltyPlayer/Schema
Why I have not put example: too complicated for me, need help
-73)https://github.com/nevsnirG/MinimalRichDomain https://github.com/nevsnirG/MinimalRichDomain
+72)https://github.com/nevsnirG/MinimalRichDomain https://github.com/nevsnirG/MinimalRichDomain
Why I have not put example: old ISourceGenerator
-74)https://github.com/OrgEleCho/EleCho.Internationalization https://github.com/OrgEleCho/EleCho.Internationalization
+73)https://github.com/OrgEleCho/EleCho.Internationalization https://github.com/OrgEleCho/EleCho.Internationalization
Why I have not put example: issue opened
-75)https://github.com/rosslight/Darp.BinaryObjects https://github.com/rosslight/Darp.BinaryObjects
+74)https://github.com/rosslight/Darp.BinaryObjects https://github.com/rosslight/Darp.BinaryObjects
Why I have not put example: later
-76)https://github.com/Stepami/visitor-net https://github.com/Stepami/visitor-net
+75)https://github.com/Stepami/visitor-net https://github.com/Stepami/visitor-net
Why I have not put example: later
-77)https://github.com/SzymonHalucha/Minerals.AutoCommands https://github.com/SzymonHalucha/Minerals.AutoCommands
+76)https://github.com/SzymonHalucha/Minerals.AutoCommands https://github.com/SzymonHalucha/Minerals.AutoCommands
Why I have not put example: later
-78)HubClientProxyGenerator https://www.nuget.org/packages/Microsoft.AspNetCore.SignalR.Client.SourceGenerator
+77)HubClientProxyGenerator https://www.nuget.org/packages/Microsoft.AspNetCore.SignalR.Client.SourceGenerator
Why I have not put example: not having nuget, but having IIncrementalGenerator
-79)Imp.NET https://github.com/DouglasDwyer/Imp.NET
+78)Imp.NET https://github.com/DouglasDwyer/Imp.NET
Why I have not put example: old ISourceGenerator
-80)Intellenum https://github.com/SteveDunn/Intellenum
+79)Intellenum https://github.com/SteveDunn/Intellenum
Why I have not put example: not understand how to use
-81)InterfaceGenerator https://github.com/daver32/InterfaceGenerator
+80)InterfaceGenerator https://github.com/daver32/InterfaceGenerator
Why I have not put example: old ISourceGenerator
-82)IoTHubClientGenerator https://github.com/alonf/IoTHubClientGenerator
+81)IoTHubClientGenerator https://github.com/alonf/IoTHubClientGenerator
Why I have not put example: old ISourceGenerator
-83)Jos.Enumeration, https://github.com/joseftw/jos.enumeration
+82)Jos.Enumeration, https://github.com/joseftw/jos.enumeration
Why I have not put example: too complicated for me, need help
-84)JsonByExampleGenerator https://github.com/hermanussen/JsonByExampleGenerator
+83)JsonByExampleGenerator https://github.com/hermanussen/JsonByExampleGenerator
Why I have not put example: old ISourceGenerator
-85)JsonDeserializeResourceSourceGenerator https://github.com/musictopia2/JsonDeserializeResourceSourceGenerator
+84)JsonDeserializeResourceSourceGenerator https://github.com/musictopia2/JsonDeserializeResourceSourceGenerator
Why I have not put example: no readme
-86)JsonMergePatch https://github.com/ladeak/JsonMergePatch
+85)JsonMergePatch https://github.com/ladeak/JsonMergePatch
Why I have not put example: old ISourceGenerator
-87)JsonSerializerContextGenerator https://github.com/musictopia2/JsonSerializerContextGenerator
+86)JsonSerializerContextGenerator https://github.com/musictopia2/JsonSerializerContextGenerator
Why I have not put example: no readme
-88)JsonSourceGenerator https://github.com/Pilchie/JsonSourceGenerator
+87)JsonSourceGenerator https://github.com/Pilchie/JsonSourceGenerator
Why I have not put example: not having nuget, but having IIncrementalGenerator
-89)JsonSrcGen https://github.com/trampster/JsonSrcGen
+88)JsonSrcGen https://github.com/trampster/JsonSrcGen
Why I have not put example: old ISourceGenerator
-90)kli.Localize https://github.com/kl1mm/localize
+89)kli.Localize https://github.com/kl1mm/localize
Why I have not put example: old ISourceGenerator
-91)laker https://github.com/Lakerfield/Lakerfield.Rpc
+90)laker https://github.com/Lakerfield/Lakerfield.Rpc
Why I have not put example: later
-92)lambdajection https://github.com/cythral/lambdajection
+91)lambdajection https://github.com/cythral/lambdajection
Why I have not put example: old ISourceGenerator
-93)Lazysh https://github.com/B1Z0N/LazyshGen
+92)Lazysh https://github.com/B1Z0N/LazyshGen
Why I have not put example: old ISourceGenerator
-94)LoggingDecoratorGenerator https://github.com/DavidFineboym/LoggingDecoratorGenerator
+93)LoggingDecoratorGenerator https://github.com/DavidFineboym/LoggingDecoratorGenerator
Why I have not put example: Microsoft have done same feature
-95)lucide-blazor https://github.com/brecht-vde/lucide-blazor/
+94)lucide-blazor https://github.com/brecht-vde/lucide-blazor/
Why I have not put example: issue opened
-96)ManagedDotnetProfiler https://github.com/kevingosse/ManagedDotnetProfiler
+95)ManagedDotnetProfiler https://github.com/kevingosse/ManagedDotnetProfiler
Why I have not put example: too complicated for me, need help
-97)MapDataReader https://github.com/jitbit/MapDataReader
+96)MapDataReader https://github.com/jitbit/MapDataReader
Why I have not put example: old ISourceGenerator
-98)MappingCloningExtensions https://github.com/musictopia2/MappingCloningExtensions
+97)MappingCloningExtensions https://github.com/musictopia2/MappingCloningExtensions
Why I have not put example: no readme
-99)Maui.BindableProperty.Generator https://github.com/rrmanzano/maui-bindableproperty-generator
+98)Maui.BindableProperty.Generator https://github.com/rrmanzano/maui-bindableproperty-generator
Why I have not put example: too complicated for me, need help
-100)MediatR https://github.com/Burgyn/MMLib.MediatR.Generators
+99)MediatR https://github.com/Burgyn/MMLib.MediatR.Generators
Why I have not put example: old ISourceGenerator
-101)MemberAccessGenerator https://github.com/ufcpp/MemberAccessGenerator
+100)MemberAccessGenerator https://github.com/ufcpp/MemberAccessGenerator
Why I have not put example: old ISourceGenerator
-102)MemoizeSourceGenerator https://github.com/Zoxive/MemoizeSourceGenerator
+101)MemoizeSourceGenerator https://github.com/Zoxive/MemoizeSourceGenerator
Why I have not put example: old ISourceGenerator
-103)Minerals.AutoCQRS https://github.com/SzymonHalucha/Minerals.AutoCQRS
+102)Minerals.AutoCQRS https://github.com/SzymonHalucha/Minerals.AutoCQRS
Why I have not put example: later
-104)Minerals.AutoDomain https://github.com/SzymonHalucha/Minerals.AutoDomain
+103)Minerals.AutoDomain https://github.com/SzymonHalucha/Minerals.AutoDomain
Why I have not put example: later
-105)MiniRazor https://github.com/Tyrrrz/MiniRazor/
+104)MiniRazor https://github.com/Tyrrrz/MiniRazor/
Why I have not put example: archived
-106)MockableStaticGenerator https://github.com/HamedFathi/MockableStaticGenerator
+105)MockableStaticGenerator https://github.com/HamedFathi/MockableStaticGenerator
Why I have not put example: old ISourceGenerator
-107)MockGen https://github.com/thomas-girotto/MockGen
+106)MockGen https://github.com/thomas-girotto/MockGen
Why I have not put example: old ISourceGenerator
-108)MockSourceGenerator https://github.com/hermanussen/MockSourceGenerator
+107)MockSourceGenerator https://github.com/hermanussen/MockSourceGenerator
Why I have not put example: old ISourceGenerator
-109)MrMeeseeks.DIE https://github.com/Yeah69/MrMeeseeks.DIE
+108)MrMeeseeks.DIE https://github.com/Yeah69/MrMeeseeks.DIE
Why I have not put example: old ISourceGenerator
-110)MrMeeseeks.ResXToViewModelGenerator https://github.com/Yeah69/MrMeeseeks.ResXToViewModelGenerator
+109)MrMeeseeks.ResXToViewModelGenerator https://github.com/Yeah69/MrMeeseeks.ResXToViewModelGenerator
Why I have not put example: old ISourceGenerator
-111)MrMeeseeks.StaticDelegateGenerator https://github.com/Yeah69/MrMeeseeks.StaticDelegateGenerator
+110)MrMeeseeks.StaticDelegateGenerator https://github.com/Yeah69/MrMeeseeks.StaticDelegateGenerator
Why I have not put example: old ISourceGenerator
-112)MrMeeseeks.Visitor https://github.com/Yeah69/MrMeeseeks.Visitor
+111)MrMeeseeks.Visitor https://github.com/Yeah69/MrMeeseeks.Visitor
Why I have not put example: old ISourceGenerator
-113)MvvmGen https://github.com/thomasclaudiushuber/mvvmgen
+112)MvvmGen https://github.com/thomasclaudiushuber/mvvmgen
Why I have not put example: too complicated for me, need help
-114)Neon.Roslyn https://www.nuget.org/packages/Neon.Roslyn
+113)Neon.Roslyn https://www.nuget.org/packages/Neon.Roslyn
Why I have not put example: old ISourceGenerator
-115)net_automatic_interface https://github.com/codecentric/net_automatic_interface
+114)net_automatic_interface https://github.com/codecentric/net_automatic_interface
Why I have not put example: old ISourceGenerator
-116)NSourceGenerators https://github.com/NeVeSpl/NSourceGenerators/
+115)NSourceGenerators https://github.com/NeVeSpl/NSourceGenerators/
Why I have not put example: old ISourceGenerator
-117)observable https://github.com/notanaverageman/Bindables
+116)observable https://github.com/notanaverageman/Bindables
Why I have not put example: later
-118)Overloader https://github.com/emptycoder/Overloader
+117)Overloader https://github.com/emptycoder/Overloader
Why I have not put example: too complicated for me, need help
-119)Pipelines https://github.com/DumplingsDevs/Pipelines/
+118)Pipelines https://github.com/DumplingsDevs/Pipelines/
Why I have not put example: old ISourceGenerator
-120)Plastic https://github.com/sang-hyeon/Plastic
+119)Plastic https://github.com/sang-hyeon/Plastic
Why I have not put example: old ISourceGenerator
-121)PolySharp https://github.com/Sergio0694/PolySharp
+120)PolySharp https://github.com/Sergio0694/PolySharp
Why I have not put example: too complicated for me, need help
-122)PrimaryConstructor https://github.com/chaowlert/PrimaryConstructor
+121)PrimaryConstructor https://github.com/chaowlert/PrimaryConstructor
Why I have not put example: old ISourceGenerator
-123)PrimitiveStaticDataGenerator https://github.com/iiweis/PrimitiveStaticDataGenerator
+122)PrimitiveStaticDataGenerator https://github.com/iiweis/PrimitiveStaticDataGenerator
Why I have not put example: old ISourceGenerator
-124)PrintMembersGenerator https://github.com/Youssef1313/PrintMembersGenerator
+123)PrintMembersGenerator https://github.com/Youssef1313/PrintMembersGenerator
Why I have not put example: old ISourceGenerator
-125)ProxyInterfaceGenerator https://github.com/StefH/ProxyInterfaceSourceGenerator
+124)ProxyInterfaceGenerator https://github.com/StefH/ProxyInterfaceSourceGenerator
Why I have not put example: old ISourceGenerator
-126)Pure.DI https://github.com/DevTeam/Pure.DI
+125)Pure.DI https://github.com/DevTeam/Pure.DI
Why I have not put example: too complicated for me, need help
-127)PureHDF https://github.com/Apollo3zehn/PureHDF
+126)PureHDF https://github.com/Apollo3zehn/PureHDF
Why I have not put example: old ISourceGenerator
-128)RazorPageRouteGenerator https://github.com/surgicalcoder/RazorPageRouteGenerator
+127)RazorPageRouteGenerator https://github.com/surgicalcoder/RazorPageRouteGenerator
Why I have not put example: old ISourceGenerator
-129)ReForge.Union https://github.com/nalcorso/ReForge.Union
+128)ReForge.Union https://github.com/nalcorso/ReForge.Union
Why I have not put example: not having nuget, but having IIncrementalGenerator
-130)RoslynWeave https://github.com/Jishun/RoslynWeave
+129)RoslynWeave https://github.com/Jishun/RoslynWeave
Why I have not put example: old ISourceGenerator
-131)ScenarioTests https://github.com/koenbeuk/ScenarioTests
+130)ScenarioTests https://github.com/koenbeuk/ScenarioTests
Why I have not put example: old ISourceGenerator
-132)schema https://github.com/MeltyPlayer/Schema
+131)schema https://github.com/MeltyPlayer/Schema
Why I have not put example: too complicated for me, need help
-133)SerdeDn https://github.com/serdedotnet/serde
+132)SerdeDn https://github.com/serdedotnet/serde
Why I have not put example: serializer. Done by MSFT with System.Text.Json
-134)SmallSharp https://github.com/devlooped/SmallSharp
+133)SmallSharp https://github.com/devlooped/SmallSharp
Why I have not put example: old ISourceGenerator
-135)SmartAnnotations https://github.com/fiseni/SmartAnnotations
+134)SmartAnnotations https://github.com/fiseni/SmartAnnotations
Why I have not put example: old ISourceGenerator
-136)SogePoco https://github.com/d-p-y/SogePoco
+135)SogePoco https://github.com/d-p-y/SogePoco
Why I have not put example: too complicated for me, need help
-137)SourceApi https://github.com/alekshura/SourceApi
+136)SourceApi https://github.com/alekshura/SourceApi
Why I have not put example: old ISourceGenerator
-138)SourceConfig https://github.com/alekshura/SourceConfig
+137)SourceConfig https://github.com/alekshura/SourceConfig
Why I have not put example: old ISourceGenerator
-139)SourceCrafter.HttpServiceClientGenerator https://github.com/pedro-gilmora/SourceCrafter.HttpServiceClientGenerator/
+138)SourceCrafter.HttpServiceClientGenerator https://github.com/pedro-gilmora/SourceCrafter.HttpServiceClientGenerator/
Why I have not put example: later
-140)SourceGeneratorQuery https://github.com/roeibajayo/SourceGeneratorQuery
+139)SourceGeneratorQuery https://github.com/roeibajayo/SourceGeneratorQuery
Why I have not put example: old ISourceGenerator
-141)SourceInject https://github.com/giggio/sourceinject/
+140)SourceInject https://github.com/giggio/sourceinject/
Why I have not put example: old ISourceGenerator
-142)SourceMapper https://github.com/alekshura/SourceMapper
+141)SourceMapper https://github.com/alekshura/SourceMapper
Why I have not put example: old ISourceGenerator
-143)SourceMapper https://github.com/paiden/SourceMapper/
+142)SourceMapper https://github.com/paiden/SourceMapper/
Why I have not put example: old ISourceGenerator
-144)SqlMarshal https://github.com/kant2002/SqlMarshal
+143)SqlMarshal https://github.com/kant2002/SqlMarshal
Why I have not put example: old ISourceGenerator
-145)ST.NSwag.ServerSourceGenerator https://github.com/s-tarasov/ST.NSwag.ServerSourceGenerator
+144)ST.NSwag.ServerSourceGenerator https://github.com/s-tarasov/ST.NSwag.ServerSourceGenerator
Why I have not put example: swagger,need help
-146)StackXML https://github.com/ZingBallyhoo/StackXML
+145)StackXML https://github.com/ZingBallyhoo/StackXML
Why I have not put example: old ISourceGenerator
-147)StaticProxyGenerator https://github.com/robertturner/StaticProxyGenerator
+146)StaticProxyGenerator https://github.com/robertturner/StaticProxyGenerator
Why I have not put example: old ISourceGenerator
-148)Strings.ResourceGenerator https://github.com/biggik/Strings.ResourceGenerator
+147)Strings.ResourceGenerator https://github.com/biggik/Strings.ResourceGenerator
Why I have not put example: old ISourceGenerator
-149)StrongInject https://github.com/YairHalberstadt/stronginject/
+148)StrongInject https://github.com/YairHalberstadt/stronginject/
Why I have not put example: too complicated for me, need help
-150)StronglyTypedEmbeddedResources https://github.com/surgicalcoder/StronglyTypedEmbeddedResources
+149)StronglyTypedEmbeddedResources https://github.com/surgicalcoder/StronglyTypedEmbeddedResources
Why I have not put example: old ISourceGenerator
-151)StructPacker https://github.com/RudolfKurka/StructPacker
+150)StructPacker https://github.com/RudolfKurka/StructPacker
Why I have not put example: old ISourceGenerator
-152)Svg https://github.com/wieslawsoltes/Svg.Skia
+151)Svg https://github.com/wieslawsoltes/Svg.Skia
Why I have not put example: old ISourceGenerator
-153)tecli https://github.com/tyevco/TeCLI
+152)tecli https://github.com/tyevco/TeCLI
Why I have not put example: old ISourceGenerator
-154)TeuJson https://github.com/Terria-K/TeuJson
+153)TeuJson https://github.com/Terria-K/TeuJson
Why I have not put example: json a class, was done in System.Text.Json
-155)Thunderboltloc https://github.com/AlyElhaddad/ThunderboltIoc
+154)Thunderboltloc https://github.com/AlyElhaddad/ThunderboltIoc
Why I have not put example: old ISourceGenerator
-156)Tinyhand https://github.com/archi-Doc/Tinyhand
+155)Tinyhand https://github.com/archi-Doc/Tinyhand
Why I have not put example: tried, need documentation
-157)Tortuga.Shipwright https://github.com/TortugaResearch/Tortuga.Shipwright
+156)Tortuga.Shipwright https://github.com/TortugaResearch/Tortuga.Shipwright
Why I have not put example: too complicated for me, need help
-158)ToString https://github.com/Burgyn/MMLib.ToString
+157)ToString https://github.com/Burgyn/MMLib.ToString
Why I have not put example: old ISourceGenerator
-159)Transplator https://github.com/atifaziz/Transplator
+158)Transplator https://github.com/atifaziz/Transplator
Why I have not put example: old ISourceGenerator
-160)TupleOverloadGenerator https://github.com/ProphetLamb/TupleOverloadGenerator
+159)TupleOverloadGenerator https://github.com/ProphetLamb/TupleOverloadGenerator
Why I have not put example: too complicated for me, need help
-161)TxtToListGenerator https://github.com/musictopia2/TxtToListGenerator
+160)TxtToListGenerator https://github.com/musictopia2/TxtToListGenerator
Why I have not put example: no readme
-162)TypealizR https://github.com/earloc/TypealizR
+161)TypealizR https://github.com/earloc/TypealizR
Why I have not put example: depends on Microsoft.Extensions.Localization
-163)UnitTestBlazor https://github.com/bUnit-dev/bUnit
+162)UnitTestBlazor https://github.com/bUnit-dev/bUnit
Why I have not put example: issue opened
-164)ValueChangedGenerator https://github.com/ufcpp/ValueChangedGenerator
+163)ValueChangedGenerator https://github.com/ufcpp/ValueChangedGenerator
Why I have not put example: old ISourceGenerator
-165)ValueLink https://github.com/archi-Doc/ValueLink
+164)ValueLink https://github.com/archi-Doc/ValueLink
Why I have not put example: too complicated for me, need help
-166)ValueObjectGenerator https://github.com/RyotaMurohoshi/ValueObjectGenerator
+165)ValueObjectGenerator https://github.com/RyotaMurohoshi/ValueObjectGenerator
Why I have not put example: old ISourceGenerator
-167)VisitorPatternGenerator https://github.com/hikarin522/VisitorPatternGenerator/
+166)VisitorPatternGenerator https://github.com/hikarin522/VisitorPatternGenerator/
Why I have not put example: issue opened
-168)Visor https://github.com/Tinkoff/Visor
+167)Visor https://github.com/Tinkoff/Visor
Why I have not put example: too complicated for me, need help
-169)WrapperValueObject https://github.com/martinothamar/WrapperValueObject
+168)WrapperValueObject https://github.com/martinothamar/WrapperValueObject
Why I have not put example: not maintained as in readme
-170)Xtz.StronglyTyped https://github.com/dev-experience/Xtz.StronglyTyped
+169)Xtz.StronglyTyped https://github.com/dev-experience/Xtz.StronglyTyped
Why I have not put example: old ISourceGenerator
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/ApparatusAOT.md b/v2/rscg_examples_site/docs/RSCG-Examples/ApparatusAOT.md
index e84ce7a8c..6781c16e4 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/ApparatusAOT.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/ApparatusAOT.md
@@ -534,7 +534,7 @@ namespace Apparatus.AOT.Reflection
https://ignatandrei.github.io/RSCG_Examples/v2/docs/ApparatusAOT
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [AspectGenerator](/docs/AspectGenerator)
@@ -543,9 +543,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/ApparatusAOT
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/AspectGenerator.md b/v2/rscg_examples_site/docs/RSCG-Examples/AspectGenerator.md
index cafb4a12a..c5efdb89f 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/AspectGenerator.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/AspectGenerator.md
@@ -730,7 +730,7 @@ namespace AspectGenerator
https://ignatandrei.github.io/RSCG_Examples/v2/docs/AspectGenerator
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -739,9 +739,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/AspectGenerator
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/CommonCodeGenerator.md b/v2/rscg_examples_site/docs/RSCG-Examples/CommonCodeGenerator.md
index 6fd6095c6..c6eed4f81 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/CommonCodeGenerator.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/CommonCodeGenerator.md
@@ -236,7 +236,7 @@ namespace ToStringData
https://ignatandrei.github.io/RSCG_Examples/v2/docs/CommonCodeGenerator
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -245,9 +245,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/CommonCodeGenerator
#### [AspectGenerator](/docs/AspectGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/CopyTo.md b/v2/rscg_examples_site/docs/RSCG-Examples/CopyTo.md
index b35bba53d..f0d09b123 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/CopyTo.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/CopyTo.md
@@ -246,86 +246,8 @@ namespace CopyToDemo
https://ignatandrei.github.io/RSCG_Examples/v2/docs/CopyTo
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (Clone) - 1 other generators
-#### [ApparatusAOT](/docs/ApparatusAOT)
-
-
-#### [AspectGenerator](/docs/AspectGenerator)
-
-
-#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-
-
-#### [DudNet](/docs/DudNet)
-
-
-#### [Enhanced.GetTypes](/docs/Enhanced.GetTypes)
-
-
-#### [FastGenericNew](/docs/FastGenericNew)
-
-
-#### [GeneratorEquals](/docs/GeneratorEquals)
-
-
-#### [HsuSgSync](/docs/HsuSgSync)
-
-
-#### [Immutype](/docs/Immutype)
-
-
-#### [Ling.Audit](/docs/Ling.Audit)
-
-
-#### [Lombok.NET](/docs/Lombok.NET)
-
-
-#### [M31.FluentAPI](/docs/M31.FluentAPI)
-
-
-#### [MemoryPack](/docs/MemoryPack)
-
-
-#### [Meziantou.Polyfill](/docs/Meziantou.Polyfill)
-
-
-#### [Microsoft.Extensions.Logging](/docs/Microsoft.Extensions.Logging)
-
-
-#### [Microsoft.Extensions.Options.Generators.OptionsValidatorGenerator](/docs/Microsoft.Extensions.Options.Generators.OptionsValidatorGenerator)
-
-
-#### [Microsoft.Interop.JavaScript.JSImportGenerator](/docs/Microsoft.Interop.JavaScript.JSImportGenerator)
-
-
-#### [OptionToStringGenerator](/docs/OptionToStringGenerator)
-
-
-#### [QueryStringGenerator](/docs/QueryStringGenerator)
-
-
-#### [RSCG_Decorator](/docs/RSCG_Decorator)
-
-
-#### [RSCG_UtilityTypes](/docs/RSCG_UtilityTypes)
-
-
-#### [StaticReflection](/docs/StaticReflection)
-
-
-#### [SyncMethodGenerator](/docs/SyncMethodGenerator)
-
-
-#### [System.Runtime.InteropServices](/docs/System.Runtime.InteropServices)
-
-
-#### [System.Text.RegularExpressions](/docs/System.Text.RegularExpressions)
-
-
-#### [TelemetryLogging](/docs/TelemetryLogging)
-
-
-#### [ThisClass](/docs/ThisClass)
+#### [Dolly](/docs/Dolly)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/Dolly.md b/v2/rscg_examples_site/docs/RSCG-Examples/Dolly.md
new file mode 100644
index 000000000..6ad8518f6
--- /dev/null
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/Dolly.md
@@ -0,0 +1,339 @@
+---
+sidebar_position: 1750
+title: 175 - Dolly
+description: Clone objects with ease.
+slug: /Dolly
+---
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+import TOCInline from '@theme/TOCInline';
+
+# Dolly by Peter Andersson
+
+
+
+
+## Nuget / site data
+[![Nuget](https://img.shields.io/nuget/dt/Dolly?label=Dolly)](https://www.nuget.org/packages/Dolly/)
+[![GitHub last commit](https://img.shields.io/github/last-commit/AnderssonPeter/Dolly?label=updated)](https://github.com/AnderssonPeter/Dolly)
+![GitHub Repo stars](https://img.shields.io/github/stars/AnderssonPeter/Dolly?style=social)
+
+## Details
+
+### Info
+:::info
+
+Name: **Dolly**
+
+Clone .net objects using source generation
+
+Author: Peter Andersson
+
+NuGet:
+*https://www.nuget.org/packages/Dolly/*
+
+
+You can find more details at https://github.com/AnderssonPeter/Dolly
+
+Source : https://github.com/AnderssonPeter/Dolly
+
+:::
+
+### Original Readme
+:::note
+
+
+
+
+
+
+
Dolly
+
+
+ Clone .net objects using source generation
+
+
+ ·
+ Report Bug
+ ·
+ Request Feature
+ ·
+
+
+
+
+[![NuGet version](https://badge.fury.io/nu/Dolly.svg)](https://www.nuget.org/packages/Dolly)
+[![Nuget](https://img.shields.io/nuget/dt/Dolly)](https://www.nuget.org/packages/Dolly)
+[![GitHub license](https://img.shields.io/badge/license-Apache%202-blue.svg)](https://raw.githubusercontent.com/AnderssonPeter/Dolly/main/LICENSE)
+
+[![unit tests](https://img.shields.io/github/actions/workflow/status/AnderssonPeter/Dolly/test.yml?branch=main&style=flat-square&label=unit%20tests)](https://github.com/AnderssonPeter/Dolly/actions/workflows/test.yml)
+[![Testspace tests](https://img.shields.io/testspace/tests/AnderssonPeter/AnderssonPeter:Dolly/main?style=flat-square)](https://anderssonpeter.testspace.com/spaces/293120/result_sets)
+[![Coverage Status](https://img.shields.io/coveralls/github/AnderssonPeter/Dolly?style=flat-square)](https://coveralls.io/github/AnderssonPeter/Dolly)
+
+## Table of Contents
+* [About the Project](#about-the-project)
+* [Getting Started](#getting-started)
+* [Example](#example)
+* [Benchmarks](#Benchmarks)
+
+## About The Project
+Generate c# code to clone objects on the fly.
+
+## Getting Started
+* Add the `Dolly` nuget and add `[Clonable]` attribute to a class and ensure that the class is marked as `partial`.
+* Add `[CloneIgnore]` to any property or field that you don't want to include in the clone.
+* Call `DeepClone()` or `ShallowClone()` on the object.
+
+### Example
+```C#
+[Clonable]
+public partial class SimpleClass
+{
+ public string First { get; set; }
+ public int Second { get; set; }
+ [CloneIgnore]
+ public float DontClone { get; set; }
+}
+```
+Should generate
+```C#
+partial class SimpleClass : IClonable
+{
+
+ object ICloneable.Clone() => this.DeepClone();
+
+ public SimpleClass DeepClone() =>
+ new SimpleClass()
+ {
+ First = First,
+ Second = Second
+ };
+
+ public SimpleClass ShallowClone() =>
+ new SimpleClass()
+ {
+ First = First,
+ Second = Second
+ };
+}
+```
+
+## Benchmarks
+
+| Method | Mean | Error | StdDev | Ratio | RatioSD | Gen0 | Gen1 | Allocated |
+|---------------- |------------:|----------:|----------:|-------:|--------:|-------:|-------:|----------:|
+| Dolly | 124.5 ns | 1.59 ns | 1.49 ns | 1.00 | 0.02 | 0.0362 | - | 608 B |
+| DeepCloner | 457.7 ns | 7.01 ns | 6.56 ns | 3.68 | 0.07 | 0.0830 | - | 1392 B |
+| CloneExtensions | 566.2 ns | 9.61 ns | 8.52 ns | 4.55 | 0.08 | 0.0896 | - | 1504 B |
+| NClone | 4,308.0 ns | 62.01 ns | 58.01 ns | 34.61 | 0.61 | 0.5112 | 0.0076 | 8584 B |
+| FastCloner | 15,310.6 ns | 221.85 ns | 207.52 ns | 123.00 | 2.16 | 0.3967 | - | 6800 B |
+| AnyClone | 19,011.9 ns | 354.27 ns | 347.94 ns | 152.74 | 3.25 | 2.4414 | - | 41256 B |
+
+:::
+
+### About
+:::note
+
+Clone objects with ease.
+
+
+:::
+
+## How to use
+
+### Example ( source csproj, source files )
+
+
+
+
+
+This is the CSharp Project that references **Dolly**
+```xml showLineNumbers {11}
+
+
+
+ Exe
+ net9.0
+ enable
+ enable
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+ true
+ $(BaseIntermediateOutputPath)\GX
+
+
+
+```
+
+
+
+
+
+ This is the use of **Dolly** in *Program.cs*
+
+```csharp showLineNumbers
+// See https://aka.ms/new-console-template for more information
+using CloneData;
+
+Console.WriteLine("Hello, World!");
+Person p = new ();
+p.FirstName = "Andrei";
+p.LastName = "Ignat";
+p.Age = 54;
+var p1=p.DeepClone();
+Console.WriteLine(p1.Name());
+```
+
+
+
+
+ This is the use of **Dolly** in *Person.cs*
+
+```csharp showLineNumbers
+
+namespace CloneData;
+[Dolly.Clonable]
+public partial class Person
+{
+ public string FirstName { get; set; } = "";
+ public string LastName { get; set; } = "";
+ [Dolly.CloneIgnore]
+ public int Age { get; set; }
+ public string Name() => $"{FirstName} {LastName}";
+
+ public Person[] Childs { get; set; } = [];
+}
+
+```
+
+
+
+
+### Generated Files
+
+Those are taken from $(BaseIntermediateOutputPath)\GX
+
+
+
+
+
+
+
+```csharp showLineNumbers
+using System;
+
+namespace Dolly
+{
+ [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)]
+ public class ClonableAttribute : Attribute
+ {
+ }
+}
+```
+
+
+
+
+
+
+
+```csharp showLineNumbers
+using System;
+
+namespace Dolly
+{
+ [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)]
+ public class CloneIgnoreAttribute : Attribute
+ {
+ }
+}
+```
+
+
+
+
+
+
+
+```csharp showLineNumbers
+using System;
+namespace Dolly
+{
+ public interface IClonable : ICloneable
+ {
+ T DeepClone();
+ T ShallowClone();
+ }
+}
+```
+
+
+
+
+
+
+
+```csharp showLineNumbers
+using Dolly;
+using System.Linq;
+namespace CloneData;
+partial class Person : IClonable
+{
+ object ICloneable.Clone() => this.DeepClone();
+ public virtual Person DeepClone() =>
+ new ()
+ {
+ FirstName = FirstName,
+ LastName = LastName,
+ Childs = Childs.Select(item => item.DeepClone()).ToArray()
+ };
+
+ public virtual Person ShallowClone() =>
+ new ()
+ {
+ FirstName = FirstName,
+ LastName = LastName,
+ Childs = Childs.ToArray()
+ };
+}
+```
+
+
+
+
+
+
+## Usefull
+
+### Download Example (.NET C# )
+
+:::tip
+
+[Download Example project Dolly ](/sources/Dolly.zip)
+
+:::
+
+
+### Share Dolly
+
+
+
+https://ignatandrei.github.io/RSCG_Examples/v2/docs/Dolly
+
+### In the same category (Clone) - 1 other generators
+
+
+#### [CopyTo](/docs/CopyTo)
+
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/DudNet.md b/v2/rscg_examples_site/docs/RSCG-Examples/DudNet.md
index 0d180d803..1a2680f46 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/DudNet.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/DudNet.md
@@ -361,7 +361,7 @@ public partial class PersonProxy : IPerson {
https://ignatandrei.github.io/RSCG_Examples/v2/docs/DudNet
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -373,9 +373,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/DudNet
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [Enhanced.GetTypes](/docs/Enhanced.GetTypes)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/Enhanced.GetTypes.md b/v2/rscg_examples_site/docs/RSCG-Examples/Enhanced.GetTypes.md
index 1a7aec2bd..60db6894f 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/Enhanced.GetTypes.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/Enhanced.GetTypes.md
@@ -301,7 +301,7 @@ namespace GetTypesForInterface
https://ignatandrei.github.io/RSCG_Examples/v2/docs/Enhanced.GetTypes
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -313,9 +313,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/Enhanced.GetTypes
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/FactoryGenerator.md b/v2/rscg_examples_site/docs/RSCG-Examples/FactoryGenerator.md
index 494b32194..30cb0086a 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/FactoryGenerator.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/FactoryGenerator.md
@@ -286,11 +286,11 @@ IService service = c.GetService>();
### Console application
-Sample Jab usage in console application can be found in [src/samples/ConsoleSample](https://github.com/westermo/FactoryGeneratorsrc/samples/ConsoleSample
+Sample Jab usage in console application can be found in [src/samples/ConsoleSample](https://github.com/westermo/FactoryGenerator/src/samples/ConsoleSample)
## Performance
-The performance benchmark project is available in [src/Jab.Performance/](https://github.com/westermo/FactoryGeneratorsrc/Jab.Performance/.
+The performance benchmark project is available in [src/Jab.Performance/](https://github.com/westermo/FactoryGenerator/src/Jab.Performance/).
### Startup time
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/FastGenericNew.md b/v2/rscg_examples_site/docs/RSCG-Examples/FastGenericNew.md
index 6948e9c4c..7970f7ecf 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/FastGenericNew.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/FastGenericNew.md
@@ -2114,7 +2114,7 @@ namespace @FastGenericNew
https://ignatandrei.github.io/RSCG_Examples/v2/docs/FastGenericNew
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -2126,9 +2126,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/FastGenericNew
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/GeneratorEquals.md b/v2/rscg_examples_site/docs/RSCG-Examples/GeneratorEquals.md
index 17c4d9a53..173971b82 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/GeneratorEquals.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/GeneratorEquals.md
@@ -465,7 +465,7 @@ namespace GeneratorEqualsDemo
https://ignatandrei.github.io/RSCG_Examples/v2/docs/GeneratorEquals
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -477,9 +477,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/GeneratorEquals
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/HsuSgSync.md b/v2/rscg_examples_site/docs/RSCG-Examples/HsuSgSync.md
index 3bb533011..c09a84b17 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/HsuSgSync.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/HsuSgSync.md
@@ -419,7 +419,7 @@ internal partial class Person
https://ignatandrei.github.io/RSCG_Examples/v2/docs/HsuSgSync
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -431,9 +431,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/HsuSgSync
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/Immutype.md b/v2/rscg_examples_site/docs/RSCG-Examples/Immutype.md
index 83de48289..1f0935195 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/Immutype.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/Immutype.md
@@ -686,7 +686,7 @@ return new ImmutypeDemo.Person( it.FirstName,LastName);}}
https://ignatandrei.github.io/RSCG_Examples/v2/docs/Immutype
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -698,9 +698,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/Immutype
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/Ling.Audit.md b/v2/rscg_examples_site/docs/RSCG-Examples/Ling.Audit.md
index f02343493..2d5f673dc 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/Ling.Audit.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/Ling.Audit.md
@@ -226,7 +226,7 @@ namespace LingDemo
https://ignatandrei.github.io/RSCG_Examples/v2/docs/Ling.Audit
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -238,9 +238,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/Ling.Audit
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/Lombok.NET.md b/v2/rscg_examples_site/docs/RSCG-Examples/Lombok.NET.md
index da3a2511b..02c591fc9 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/Lombok.NET.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/Lombok.NET.md
@@ -457,7 +457,7 @@ public partial class Person
https://ignatandrei.github.io/RSCG_Examples/v2/docs/Lombok.NET
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -469,9 +469,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/Lombok.NET
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/M31.FluentAPI.md b/v2/rscg_examples_site/docs/RSCG-Examples/M31.FluentAPI.md
index b632b3c86..871143661 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/M31.FluentAPI.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/M31.FluentAPI.md
@@ -391,7 +391,7 @@ internal class CreatePerson : CreatePerson.IHasDOB
https://ignatandrei.github.io/RSCG_Examples/v2/docs/M31.FluentAPI
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -403,9 +403,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/M31.FluentAPI
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/MemoryPack.md b/v2/rscg_examples_site/docs/RSCG-Examples/MemoryPack.md
index 9f8290403..cf9e131da 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/MemoryPack.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/MemoryPack.md
@@ -1729,7 +1729,7 @@ partial class Person : IMemoryPackable
https://ignatandrei.github.io/RSCG_Examples/v2/docs/MemoryPack
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -1741,9 +1741,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/MemoryPack
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/Meziantou.Polyfill.md b/v2/rscg_examples_site/docs/RSCG-Examples/Meziantou.Polyfill.md
index 190ca90d3..59d7b58b2 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/Meziantou.Polyfill.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/Meziantou.Polyfill.md
@@ -5889,7 +5889,7 @@ namespace System.Threading.Tasks
https://ignatandrei.github.io/RSCG_Examples/v2/docs/Meziantou.Polyfill
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -5901,9 +5901,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/Meziantou.Polyfill
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/Microsoft.Extensions.Logging.md b/v2/rscg_examples_site/docs/RSCG-Examples/Microsoft.Extensions.Logging.md
index 0a81fb472..a8f42d910 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/Microsoft.Extensions.Logging.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/Microsoft.Extensions.Logging.md
@@ -373,7 +373,7 @@ Those are taken from $(BaseIntermediateOutputPath)\GX
https://ignatandrei.github.io/RSCG_Examples/v2/docs/Microsoft.Extensions.Logging
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -385,9 +385,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/Microsoft.Extensions.Logging
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/Microsoft.Extensions.Options.Generators.OptionsValidatorGenerator.md b/v2/rscg_examples_site/docs/RSCG-Examples/Microsoft.Extensions.Options.Generators.OptionsValidatorGenerator.md
index 14a229893..67c5af208 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/Microsoft.Extensions.Options.Generators.OptionsValidatorGenerator.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/Microsoft.Extensions.Options.Generators.OptionsValidatorGenerator.md
@@ -354,7 +354,7 @@ namespace __OptionValidationGeneratedAttributes
https://ignatandrei.github.io/RSCG_Examples/v2/docs/Microsoft.Extensions.Options.Generators.OptionsValidatorGenerator
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -366,9 +366,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/Microsoft.Extensions.Options
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/Microsoft.Interop.JavaScript.JSImportGenerator.md b/v2/rscg_examples_site/docs/RSCG-Examples/Microsoft.Interop.JavaScript.JSImportGenerator.md
index df8f5fbae..67fe7bd72 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/Microsoft.Interop.JavaScript.JSImportGenerator.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/Microsoft.Interop.JavaScript.JSImportGenerator.md
@@ -854,7 +854,7 @@ namespace TestBlazor.Pages
https://ignatandrei.github.io/RSCG_Examples/v2/docs/Microsoft.Interop.JavaScript.JSImportGenerator
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -866,9 +866,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/Microsoft.Interop.JavaScript
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/OptionToStringGenerator.md b/v2/rscg_examples_site/docs/RSCG-Examples/OptionToStringGenerator.md
index cf8e160c5..fab5cefcd 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/OptionToStringGenerator.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/OptionToStringGenerator.md
@@ -639,7 +639,7 @@ namespace Seekatar.OptionToStringGenerator
https://ignatandrei.github.io/RSCG_Examples/v2/docs/OptionToStringGenerator
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -651,9 +651,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/OptionToStringGenerator
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/QueryStringGenerator.md b/v2/rscg_examples_site/docs/RSCG-Examples/QueryStringGenerator.md
index 328da8dce..567e4eca2 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/QueryStringGenerator.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/QueryStringGenerator.md
@@ -316,7 +316,7 @@ namespace QueryStringGenerator
https://ignatandrei.github.io/RSCG_Examples/v2/docs/QueryStringGenerator
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -328,9 +328,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/QueryStringGenerator
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/RSCG_Decorator.md b/v2/rscg_examples_site/docs/RSCG-Examples/RSCG_Decorator.md
index 7521bb03b..76b2e1d20 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/RSCG_Decorator.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/RSCG_Decorator.md
@@ -492,7 +492,7 @@ namespace RSCG_DecoratorTestConsole {
https://ignatandrei.github.io/RSCG_Examples/v2/docs/RSCG_Decorator
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -504,9 +504,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/RSCG_Decorator
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/StaticReflection.md b/v2/rscg_examples_site/docs/RSCG-Examples/StaticReflection.md
index 023bb5058..19d74505b 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/StaticReflection.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/StaticReflection.md
@@ -644,7 +644,7 @@ namespace StaticReflectionDemo
https://ignatandrei.github.io/RSCG_Examples/v2/docs/StaticReflection
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -656,9 +656,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/StaticReflection
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/SyncMethodGenerator.md b/v2/rscg_examples_site/docs/RSCG-Examples/SyncMethodGenerator.md
index 437915a08..e10fc97f1 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/SyncMethodGenerator.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/SyncMethodGenerator.md
@@ -284,7 +284,7 @@ partial class Writer
https://ignatandrei.github.io/RSCG_Examples/v2/docs/SyncMethodGenerator
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -296,9 +296,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/SyncMethodGenerator
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/System.Runtime.InteropServices.md b/v2/rscg_examples_site/docs/RSCG-Examples/System.Runtime.InteropServices.md
index a76c0225e..94edd4d23 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/System.Runtime.InteropServices.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/System.Runtime.InteropServices.md
@@ -202,7 +202,7 @@ unsafe partial class DemoImport
https://ignatandrei.github.io/RSCG_Examples/v2/docs/System.Runtime.InteropServices
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -214,9 +214,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/System.Runtime.InteropServic
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/System.Text.RegularExpressions.md b/v2/rscg_examples_site/docs/RSCG-Examples/System.Text.RegularExpressions.md
index 33bedb38b..476dfcbd7 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/System.Text.RegularExpressions.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/System.Text.RegularExpressions.md
@@ -434,7 +434,7 @@ namespace System.Text.RegularExpressions.Generated
https://ignatandrei.github.io/RSCG_Examples/v2/docs/System.Text.RegularExpressions
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -446,9 +446,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/System.Text.RegularExpressio
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/ThisClass.md b/v2/rscg_examples_site/docs/RSCG-Examples/ThisClass.md
index 1423a6394..bc738010f 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/ThisClass.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/ThisClass.md
@@ -304,7 +304,7 @@ sealed partial class ThisClassAttribute : Attribute
https://ignatandrei.github.io/RSCG_Examples/v2/docs/ThisClass
-### In the same category (EnhancementClass) - 27 other generators
+### In the same category (EnhancementClass) - 26 other generators
#### [ApparatusAOT](/docs/ApparatusAOT)
@@ -316,9 +316,6 @@ https://ignatandrei.github.io/RSCG_Examples/v2/docs/ThisClass
#### [CommonCodeGenerator](/docs/CommonCodeGenerator)
-#### [CopyTo](/docs/CopyTo)
-
-
#### [DudNet](/docs/DudNet)
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/index.md b/v2/rscg_examples_site/docs/RSCG-Examples/index.md
index 27a356442..b623525e5 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: 174 RSCG list by category
-description: 174 RSCG list by category
+title: 175 RSCG list by category
+description: 175 RSCG list by category
slug: /rscg-examples
---
@@ -142,6 +142,23 @@ import DocCardList from '@theme/DocCardList';
+## Clone
+
+
+ Expand Clone =>examples:2
+
+
+
+[CopyTo](/docs/CopyTo)
+
+
+
+
+[Dolly](/docs/Dolly)
+
+
+
+
## CodeToString
@@ -300,7 +317,7 @@ import DocCardList from '@theme/DocCardList';
## EnhancementClass
- Expand EnhancementClass =>examples:28
+ Expand EnhancementClass =>examples:27
@@ -419,11 +436,6 @@ import DocCardList from '@theme/DocCardList';
-[CopyTo](/docs/CopyTo)
-
-
-
-
[CommonCodeGenerator](/docs/CommonCodeGenerator)
@@ -1117,6 +1129,10 @@ flowchart LR;
Builder--> Hsu.Sg.FluentMember((Hsu.Sg.FluentMember))
+ Clone--> CopyTo((CopyTo))
+
+ Clone--> Dolly((Dolly))
+
CodeToString--> SourceGenerator.Helper.CopyCode((SourceGenerator.Helper.CopyCode))
CodeToString--> CodeAnalysis((CodeAnalysis))
@@ -1211,8 +1227,6 @@ flowchart LR;
EnhancementClass--> OptionToStringGenerator((OptionToStringGenerator))
- EnhancementClass--> CopyTo((CopyTo))
-
EnhancementClass--> CommonCodeGenerator((CommonCodeGenerator))
EnhancementClass--> ThisClass((ThisClass))
diff --git a/v2/rscg_examples_site/docs/about.md b/v2/rscg_examples_site/docs/about.md
index 1152aba6b..7bb96975b 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 174 Roslyn Source Code Generator (RSCG)
+of 175 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 e7bf73ad4..fd99cccb6 100644
--- a/v2/rscg_examples_site/docs/indexRSCG.md
+++ b/v2/rscg_examples_site/docs/indexRSCG.md
@@ -10,9 +10,9 @@ import useBaseUrl from '@docusaurus/useBaseUrl';
;
-## 174 RSCG with examples in descending chronological order
+## 175 RSCG with examples in descending chronological order
-This is the list of 174 ( 14 from Microsoft) RSCG with examples
+This is the list of 175 ( 14 from Microsoft) RSCG with examples
[See by category](/docs/rscg-examples) [See as json](/exports/RSCG.json) [See as Excel](/exports/RSCG.xlsx)
@@ -23,6 +23,7 @@ This is the list of 174 ( 14 from Microsoft) RSCG with examples
| No | Name | Date | Category |
| --------- | ----- | ---- | -------- |
+|175| [Dolly by Peter Andersson ](/docs/Dolly)|2024-12-03 => 03 December 2024 | Clone |
|174| [Dapper.AOT by Marc Gravell ](/docs/Dapper.AOT)|2024-12-02 => 02 December 2024 | Database |
|173| [Microsoft.Windows.CsWin32 by Microsoft ](/docs/Microsoft.Windows.CsWin32)|2024-12-01 => 01 December 2024 | WinAPI |
|172| [GoLive.Generator.BlazorInterop by surgicalcoder ](/docs/GoLive.Generator.BlazorInterop)|2024-11-09 => 09 November 2024 | Blazor |
@@ -81,7 +82,7 @@ This is the list of 174 ( 14 from Microsoft) RSCG with examples
|119| [AutoGen by Feast Antelcat ](/docs/AutoGen)|2024-02-22 => 22 February 2024 | Mapper |
|118| [RSCG_Wait by Andrei Ignat ](/docs/RSCG_Wait)|2024-02-21 => 21 February 2024 | EnhancementProject |
|117| [PlantUmlClassDiagramGenerator by Hirotada Kobayashi ](/docs/PlantUmlClassDiagramGenerator)|2024-02-20 => 20 February 2024 | EnhancementProject |
-|116| [CopyTo by Paul Braetz ](/docs/CopyTo)|2024-02-19 => 19 February 2024 | EnhancementClass |
+|116| [CopyTo by Paul Braetz ](/docs/CopyTo)|2024-02-19 => 19 February 2024 | Clone |
|115| [UnionsGenerator by Paul Braetz ](/docs/UnionsGenerator)|2024-02-18 => 18 February 2024 | FunctionalProgramming |
|114| [corecraft by ](/docs/corecraft)|2024-02-17 => 17 February 2024 | FilesToCode |
|113| [sourcedepend by Colin Wilmans ](/docs/sourcedepend)|2024-02-16 => 16 February 2024 | Constructor |
diff --git a/v2/rscg_examples_site/src/components/HomepageFeatures/index.tsx b/v2/rscg_examples_site/src/components/HomepageFeatures/index.tsx
index 8c21e57be..fde0bf037 100644
--- a/v2/rscg_examples_site/src/components/HomepageFeatures/index.tsx
+++ b/v2/rscg_examples_site/src/components/HomepageFeatures/index.tsx
@@ -10,7 +10,7 @@ type FeatureItem = {
const FeatureList: FeatureItem[] = [
{
-title: '174 Examples (14 from MSFT)',
+title: '175 Examples (14 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 07a8cf142..dfe783ff2 100644
--- a/v2/rscg_examples_site/static/exports/RSCG.json
+++ b/v2/rscg_examples_site/static/exports/RSCG.json
@@ -927,7 +927,7 @@
"Link": "https://ignatandrei.github.io/RSCG_Examples/v2/docs/CopyTo",
"NuGet": "https://www.nuget.org/packages/RhoMicro.CodeAnalysis.CopyToGenerator",
"Source": "https://github.com/PaulBraetz/RhoMicro.CodeAnalysis",
- "Category": "EnhancementClass",
+ "Category": "Clone",
"AddedOn": "2024-02-19T00:00:00"
},
{
@@ -1393,6 +1393,14 @@
"Source": "https://github.com/DapperLib/DapperAOT",
"Category": "Database",
"AddedOn": "2024-12-02T00:00:00"
+ },
+ {
+ "Name": "Dolly",
+ "Link": "https://ignatandrei.github.io/RSCG_Examples/v2/docs/Dolly",
+ "NuGet": "https://www.nuget.org/packages/Dolly/",
+ "Source": "https://github.com/AnderssonPeter/Dolly",
+ "Category": "Clone",
+ "AddedOn": "2024-12-03T00: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 0cada8eb6269fc0611b592839259a1cffc16526a..b4e364641e86e5f83ddb82a01e66e2afcebc42e4 100644
GIT binary patch
delta 8851
zcmZ8{1yEc;n=K9#+}$0528ZAp+$FdKw*i7PIE3I3G+1y5?k)p^TX1)0aM#DbTU%TE
zZq==>?&{Okr|<3h&L_(%F{&UnMR)`}7#I{3m=*O{{chIJvfVH+Ff_0*FqrSHmjj2V
zGtl1L+1Z}m%h4ewPQeMxi6&D;ZBc`5LOQ-0D{qd>Z;2?w7O2HnBczdR-t+p%(tnM@
zr}Im{Xo~7e<=y?NUm80);{siQ*#v2?0WvL
z!e;+PSji#N_p3{!X-*T8@(&s92jMC3i20A1YRoEF>hgm#^WOw
z5H#;}@lvg9>pJS(CP%UI&Sps=AMvlw&ba?Lbb(Uyp0=LI6?P8h
z?;K&K2PCtx^`C{t!z>q@F5}MM_L7d5ua1{_tJbqjy1rgLc0AnpzISp=x=gMfLmqCB
z8Rq#Z#Ui&Xgd}iE-(0@m#g>Bz@fl{~vhL2LUGdvfa?IrXXTk!NPK~ztoCyJ@Q>3`~(PVTWwImi&LuzpOA#fotaFKypD;UF8~;t#=)`A>RLrenw1U6W2)AX%)w_&H5Y=$M;DP*F2-nW>76s2EK2
zn>LYj+oi6ctNQ|5b2P!Sy~TUZvvLAV{g}Wz#i1~oZVFGFwWg@_bCs(`qzix>yr~CnEL@b`9AN#DuflUX
z+L-gdaRl3}K9b`S8>tlQ6Y=nc?S)SkG4TzY?5FHk-tDFPKinK!i5ECIev>&hyzSkn
zK_ZE;=OPLy4D))4UpEzKwc?=s4jfW(L3_>Fd049PrUO-rGVzPdHFXK{y@gSotXf|*
z|LFGlW7WY>*!HvO8*G2!*ISw`5d#lR*{DCgAah)lUR8x?@Q3qs3wM%@CjeQ*@jc|C
zz2(4U#Mt3kS7obaZT0kmfKz-o{2B>{uc;GLgNHsXg9xNK($;ZWl0Cd?s`obtlI8XX
z%{OWq8y575#v=JJ`d*o9&e&Dy@@CmO&b=adE4(~R+XQwux-mBHj#bV;7jMG$BehDb
z#sU(C;Bf6tkng%f10iZxEj5NT$=~Rg2NA6!$UUdkBj=4qCbI>83k
z(A_rsKKcU0qPlU*M4aEDJ*MzlPF~Msfs}k89kV7(mXmLsu+GzAHp@SKIXzIgb%0YX
zt>__hn2|Jr2!akFcr^FNIpML5j$*J|5qmHC;c-VwkWAF_2Iy=jhhBCRk@7|!;~&io
zYY^rSgCKAepAfXq8cVX
z{;d)rwy^_p*WBwb*b(D1B*4p}IE?ItS?C{*L?ZW*-hs?$yyD4>6*)-=zB1F=u-#4Euz~Qf
zQeTpr06*%%b`F!l#{p(U{r+AMP7Ey@?^_JyEv2k>`BuZ2%ZOhOkHWNxU(yc;2~><~
zTGo)xC%`{y%q5ZCy!uj?dYY4srXSPdrTMXm@P%D(E@FW7#HW|4iGYINFMtOc0WnJH
z-Oa)?ge~PiAX*QT;0#j|ErQtLsKjcw{*CZ5PP3!@20D|K{3S7NJ{KUgSICPj0d(I}pYzLe
zG=Zv~OS;>Xd?fF?671S3$>p4}Xj|X;OokEInh?d=8-dl@*GE0fojw(dJDqGT*yQGr4pUQHMgrVVdU7+GVF3)
z3v$QM<<{)@d}&j@Y?MOc;X$`3N)|P@iRop1ojp=CrY`&SG=*bs%I$pYp0gLK)L#FF
zyQ}CgynfS+a`9&VXr1~h(!_7rcdo`J@
z2f~`^VJMNAK}yO|v}m^^fa)}16Pxl@V-Y#_B2Ij(?R~RqjXX~xvY@?)214)NB03cf
zgU^rRVV`m<@?09NIeuqRtEcqF-=lV-hIB5atxVpRKFsG`r4m1DA5BP~n?=sWQa3=g
zn_-yvIwbpXdo|N*ld?m@<
zNBz59Lq>8I;#mssc#k}}y@4;wiovJ=CbYfxFJ4dloAh?(LsE~)qWDp?C#iI2O5R{o
zQ_#1x-=(d8^+AMW<q&ydcO_=_faEw$7ml5)`30BRs^p8GV!&5BZK?OCV*Uxe>jd`t2&Q+&I>VCW^A(`50D=u}_k02pL1+F|Cgrn8(<-n8WNnX->
zd!`-eGO9PFehxxyqmG1Yfi!D*z}#H#O#Yjpt)S^)z9Z8*ba})R(YA9lVE^&mWH*eX
z)BWm2Nd>EvsZzE7V{Tp|>Mb8cRv{hse##WoIo-KsL8H+ParN4QLVr;X8^;h?1L!UI
z*w7UlLH=B8jd|it&K#3Qr;UH=c#zetUp^ny5x6%Mh779n9$fl)*-_UlN2MQy+|Jzd
zv5q-PRXDC2+qapWAoqj?mTBhhHi%VYbL&EbO@hy*&Qzk#oPpGn3+@cP6%+QPQLay<
z0$D1q$CwHl7e?B#5fac3bWSCsG9sh1((SPvM23Dy%anR6;>2Zx~V_y%FdvkH#zXM#IRf&A|%uyD|k!E%|`o9FbCW^S?Em1y(RH|sI
zY&|74sM|2E-^fNGMyhW!C0gneyst-91k!zYPlyk+*$-%f8c&-owsc#ck927y=D$IwmO1^*!+VEGHn?TO{hE5#p2AXjq%`)YQ4S*Za{DAZYMkUq)|Nq?kTp^s@kJJ>XYE^0Jx2gym5P?MnHUR*kpEg{R60-Mtf@0Z?S_-Q^FvxlD(l%r
zrzrTdumT9mKTYC83936rFv-aeS8~OgrzAB>FYFR3NDO=MVydZU&qd9~-P#Z7P!L
zicNcN0rh$}f)FDG=_1GL(pMP37+qY)hwrnPJkd)F$L{3yDd}#?vM+!?`)Ytikh~?U?XK7@r1*DtySJ%+^$>g??t$Uxh8&B=U^`?iM4*Rl^eRT_OC$
z3`N4F=Sa||xg5OKcH4EiQRUj=8K!vGW-!yT>;z2`qXJH#wU~H3^r*AFE=RH#llJJk
zDdgYPus0if!qF{YbPJM;Me*g?q`08ujlYOn7Z~>l^Y?}a32EK@{a20_<+f@Ne2?
zXLfBxPsA^htr}eXVWWi$J->&%w|#!Wme_M$c&(c&${bF3rF(|ZUo93#DSPRz;g)+X
z-U2V~e8v<>(%45)gY*mMz%7lXYck4*KI%%O?UH)J6Ubl^s~^2OQfo{27}e}$Vo8z2
z2j7ZwP|~0;cr6-YrlyS?OIjPeTf!fm>?jsW{)22rWYLd(-myIOE9XMJ_TUB55s`j4
zia*mFTHh+K`0ikcJpEBA)3O^~oFJ#MO)N}A)NT5x`~qSd{S-QB1ljU&0L!YM$WN8X
z$XW5Ap90MPmcgdaibkdO}hF(2vXzI5}E<$kZUKXy!&a#+N^&MHcnn
zPw;ycc_5glDRVx%4IMi;0%y^0Lo@fAPs9W902#;t8&n@szY~?I8JP;CL>xUCGa;clHoxTDl40MF1)T_2aVl0BEB%5L7EdSe0y4
z{NOrM(caqneb9KjyS`)Y9#K&{v5H2nMkVrJF{T;Hn9+1yF_wsjQ$!edcpxb<7t$ZU
z^(nXk&)QiDyXo3rbK|l{sMJXeL58>DB^AhnQwj1)ETyyty&DxQ^zh)A&L~~@F4QaZ
zo7iQt8YfcJ{fd;1Y?MUiAD}C|i#76u3nnz3;}Bp`7RR!QUCh?ub1Tn)c$+0aAs@)n
zDDjEE%EGqcq_DqBjVh?^MtsGE*uiJ`Ufe=d(+m}vx(WBc9hNN31|;E86Syc6hQ}s@
z+g`K3+#`x(3dMpypI64LI_@fOBx*O5wtrAx*!t2I$#WZUIC!u@fOjauQ=p(mTvs3ohKaGrDe``FgrKG
zO(0F=AieV_Sj{rEHEz_LB=gNx)=4
zat}Azr2_>{bwFr>hJ}cF_GR_;C;i+
zAP6+c7kTN%P7%`yv2*GwcVwBYKiQShe)T4m|L#Fgkb}q36Ds41%q~AX2N`fAb}WO`
zpU@8+;0Dk5lP>%*Cj3MCS|xKO6aiF10qv2URYuIMI2jEzRo2)5_GQA2P!GA;OHMM#f7}zeeSak}mvF&Yf_ItseF!*(nOLer^Oc0r
zHnR+r=;*7hu?qb>du-=e6SA+}L=xZj+|dFpuDtZ&T57;6{r5m3BgIXKjNo;{taLMQ
z8}9Qv;MB<9R+m|+Gs}ui4Z~LsfCL)$JGTsnasbZ~isDrShcVDUo7LK8(t)Bx-KY
zfO|Kr0Iz@^$W9`iR3GkiDazUlQW>c;CzMwK1^F3$nvi5d*;G)NZJQZRm04Xrw)+i~
z{dFBEO6trA#aHmalk#SP2NW)svD5L31emX4MyLvq1a|^^On=RhKl53}z~n2}X)Ti;
z{EccRvWWk?b=l{bqMU|8M`9B_HpSpZkETjGioC4c!Hm+7?Kv;v?=f$zp;cHOT?TbC
zrHCZv)V0QI@7{=*X%Roy#=GTSQo8{iv#UDXYFp*XI}N+|qF>e)$Myq4W`60B-5|1$
zc1}8oko(pP{HtMx?b`?#iT$i$QdH0|Pp)d4jkqU!ED0-U>5QW#!n~HjIu}%d;NM>`w>5ua5{-
zojDiUHDTmHwIOweSyaFfbs34w`4noOctc(^{o2<*%g!}=V%Y~LVK2J*b;+vX~teNOsxsXUf4
z60a*lgIx_BqW&ILsVrt!jRZ{-T}o;Eeurv<6(tqI|BWO3
z^PYLoafo{Oh_;m>>4tZq7uGw?;2L^*V3hDHVHa4BW_5LPYM3Kz*;wOdRz=zCP`bmT
zjsn2sx)YbA+S~YDYUC0yO2za7DD)PQbEya)$
zvx|QWCMeceu1sIDUf@kHtB(V0b}~Y$mN7|1Lq&mv^TH((o9Kg4Ve-7F4p-KJ!`cCd
znlJ$ee#o{mSYQi=ZOpE=r=W)+W8d2hvtUM=_;KI&=zv;tHRvd!DY-|B3dJjA6AccB
z5g&f-!#D{t`x*k5-hR-{&>%80{~3fM$&BhCOj
zAkU!R@p3-2fJjB(V!87$Ser5nP0wPa+{j%gjODZvo@22Dj*II`1RP-1iR1s8hmK`I
zE^)$(;Ylxeti(@u08x(Y9LO1&k2_Dd!JE7kKLOV2Q@1<6QzoX)cYvg6u_PwC)R!|S
zt)WwYKXEO)D5m+yJl$&SBw0am6q8|;!OiGOdER<=AVQ|srjz;I<{FX~=PFsz2b2-%
zG%Wv2J4*^8QRIt8lv8RQ_)$J>zgwux2!$Ul*J(dX64cgFg9xDtd2*I3UaWtsybeQ_
zn1CzT(QYgqAhv|TA8b3(L@dX$3)MixYqRhZg25=Ul)iJs%u+jpLxR6YQA<+(JQ-Cv<5}
z;H5Ofh7be3vxs)+_-p!W^RW=2bV-pd2Js5F<8yr%HSsm-y?v1PjBGR6hdfoPdtJ$f
zG3OxRDZUEWwI*FDv!|e8uq`;Zfq=sLska4Wt4iN#S_SLP>|?PO&MqWwHf_G{?>hwy
z_{lIO_fdO2O5EIsp?U@D5fM&xs+}zK;cwhGFFPJUP--N3ChH~gt;Q}QaqJGc&YSVg
z>~`^Gpjg$*s&Y@u(Pbx2M6s12%evIHnYEsUWU$EI#e(54vFcPRRjpJ(Q9#JjtSOn<
z?qJII7d6jOjg=gAzFDGEzI)1ny?+lu9e=&Dtpup!y$Jl_fQ4zuTY*HIK=58FmIxG!
z@VjUFcKB%!Y
zM$3M{P)Dp<7xyQ7p
z2HH=X(0b9NqMJkB4Ii91>C!OE0L>vd^aRw-a?g)qp5V*PCew_Y6$3MFToX5TkWyD~
z;VU$kQH3u*U`I8*E$4jKUc7I!SU$oCdzQCGh6q^K_^6~M*6OhQRUTYd}DZO(}4@7RIZQFC{
z{&+?<0>+H71(acP9Lanp@7w3Il38UdVrGrFO=R-Rm_M(Ha20-+7T~)UBULBVp#_^F
zuDMohf>D5o4AsY@_|hVY6e(YsD-%0fEgcQS#;E_K5I5g-od
z&b97`lBlDi&G%3O_H`0yFn^7cCFzob`h_u>4F8jlTto^jcm3qelgntUysrQ-
z5&gdk$s_m!ZJkE)I^cX-1ilMC%G&gvO3&b*Pdf>toz4gCe>r^v0dUp_EOb@Hm3_d=
zLU{Mfd;Q4~w=4$=39`fMp{o2kCHq^{>n;lEMd}1#zZbp~MF$1FPb5K}3^!({+S8?y^NbZ!Rl6JM&l(Sbd*C`r2bl
zlEkCb(av^eujFgNCkTaYt93UhS>bj*5=4!(?-R0YszUpCiJG8{J(@3*>g4@-|IQ_;9y{I-`lTJ&Q9)DPVRNxbl9*c|5N#qv`Ehj|K3T$W)S%Q
ziz0Lx1StRK*qPp|L;mxkzOVGZk8M&V0}0?ibN>5yrx@^ITa)$~nEwm+|L@>`aid8b
Mj0{M3^#2+8fAM1YwEzGB
delta 8806
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