NanoByte Code Generation
A thin wrapper around the Roslyn API to simplify generating C# code.
This can be used to implement things like code generators for Swagger/OpenAPI Spec, ORMs, etc. using a type-safe interface rather than simple string templating.
While you can use the Rosyln API directly, its immutable and thread-safe design can make using it somewhat verbose and cumbersome. This library provides a simpler (but also less flexible) wrapper.
Usage
Add a reference to the NanoByte.CodeGeneration NuGet package to your project. It is available for .NET Standard 2.0+.
You can then generate a class like this:
var myClass = new CSharpClass(new CSharpIdentifier("MyNamespace", "MyClass"))
{
Description = "My class",
Properties =
{
new CSharpProperty(CSharpIdentifier.String, "MyProperty")
{
Description = "My property",
HasSetter = true
}
}
};
myClass.WriteToFile("MyClass.cs");
Take a look at the documentation for CSharpClass and CSharpInterface to discover more features.