Skip to content

Latest commit

 

History

History
35 lines (26 loc) · 1.25 KB

index.md

File metadata and controls

35 lines (26 loc) · 1.25 KB
title
Home

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 xref:NanoByte.CodeGeneration.CSharpClass and xref:NanoByte.CodeGeneration.CSharpInterface to discover more features.