1- ImmutableObjectGraph
2- =======================
1+ # ImmutableObjectGraph
32
43[ ![ Build status] ( https://ci.appveyor.com/api/projects/status/sc0w4vlceulc2try?svg=true )] ( https://ci.appveyor.com/project/AArnott/immutableobjectgraph )
54[ ![ NuGet package] ( https://img.shields.io/nuget/v/ImmutableObjectGraph.svg )] ( https://nuget.org/packages/ImmutableObjectGraph )
@@ -23,34 +22,33 @@ These codebases for immutable objects can be quite large.
2322
2423To reduce the burden of writing and maintaining such codebases, this project
2524generates immutable types for you based on a minimal definition of a class
26- that you define.
27-
28- Supported features
29- ------------------
30-
31- * Field types may be value or reference types.
32- * When field types are collections, immutable collections should be used that
33- support the Builder pattern.
34- * When field types refer to other types also defined in the template
35- file, an entire library of immutable classes with members that
36- reference each other can be constructed.
37- * Batch property changes can be made with a single allocation using a single
38- invocation of the ` With ` method.
39- * Builder classes are generated to allow efficient multi-step mutation
40- without producing unnecessary GC pressure.
41- * Version across time without breaking changes by adding Create and With method
42- overloads with an easy application of ` [Generation(2)] ` .
43-
44- Usage
45- -----
25+ that you define.
26+
27+ ## Supported features
28+
29+ * Field types may be value or reference types.
30+ * When field types are collections, immutable collections should be used that
31+ support the Builder pattern.
32+ * When field types refer to other types also defined in the template
33+ file, an entire library of immutable classes with members that
34+ reference each other can be constructed.
35+ * Batch property changes can be made with a single allocation using a single
36+ invocation of the ` With ` method.
37+ * Builder classes are generated to allow efficient multi-step mutation
38+ without producing unnecessary GC pressure.
39+ * Version across time without breaking changes by adding Create and With method
40+ overloads with an easy application of ` [Generation(2)] ` .
41+
42+ ## Usage
43+
4644You can begin using this project by simply installing a NuGet package:
4745
4846 Install-Package ImmutableObjectGraph.Generation -Pre
4947
5048On any source file that you use the ` [GenerateImmutable] ` attribute in,
5149set the Custom Tool property to: ` MSBuild:GenerateCodeFromAttributes `
5250
53- ## Example source file
51+ ### Example source file
5452
5553``` csharp
5654[GenerateImmutable ]
@@ -61,7 +59,7 @@ partial class Fruit
6159}
6260```
6361
64- ## Example generated code
62+ ### Example generated code
6563
6664The following code will be generated automatically for you and added to a source file
6765in your intermediate outputs folder:
@@ -165,10 +163,9 @@ partial class Fruit
165163The integration of the code generator support in Visual Studio allows for you to
166164conveniently maintain your own code, and on every save or build of that file,
167165the code generator runs and automatically creates or updates the generated partial
168- class.
166+ class.
169167
170- Known Issues
171- ------------
168+ ## Known Issues
172169
173170When defining more than one immutable type, you may need to keep the arguments
174171to the ` [GenerateImmutable] ` attribute consistent for every type. The generator
0 commit comments