System.CodeDom 9.0.0-rc.2.24473.5

About

Provides functionality for dynamically generating and compiling source code using the Code Document Object Model (CodeDOM).

It allows developers to represent code in a language-agnostic format and then generate code in multiple languages, such as C# and VB.NET. The primary use cases include creating dynamic code generation tools, runtime code generation, and facilitating code analysis or transformation.

For a new modern development consider using the .NET Compiler Platform SDK, in particular Roslyn source generators.

Key Features

  • Write code using a common object model that can be translated into multiple programming languages.
  • Generate and compile code at runtime based on the CodeDOM.

How to Use

Generating and compiling C# code:

using System.CodeDom;
using System.CodeDom.Compiler;
using Microsoft.CSharp;

// Create a new CodeCompileUnit to hold the code
var compileUnit = new CodeCompileUnit();

// Create a namespace
var codeNamespace = new CodeNamespace("MyNamespace");
compileUnit.Namespaces.Add(codeNamespace);

// Create a class
var classDeclaration = new CodeTypeDeclaration("MyClass")
{
    IsClass = true
};
codeNamespace.Types.Add(classDeclaration);

// Add a simple method to the class
var method = new CodeMemberMethod
{
    Name = "HelloWorld",
    ReturnType = new CodeTypeReference(typeof(void)),
};
classDeclaration.Members.Add(method);

var methodInvocation = new CodeMethodInvokeExpression(new CodeTypeReferenceExpression("Console"),
                                                      "WriteLine",
                                                      new CodePrimitiveExpression("Hello, World!"));
method.Statements.Add(methodInvocation);

// Generate C# code from the CodeDOM structure
CodeDomProvider provider = new CSharpCodeProvider();

using (var writer = new StringWriter())
{
    var codeGenereationOptions = new CodeGeneratorOptions()
    {
        BlankLinesBetweenMembers = false,
        IndentString = "  ",
    };

    provider.GenerateCodeFromCompileUnit(compileUnit, writer, codeGenereationOptions);
    Console.WriteLine(writer.GetStringBuilder().ToString());
}

This example generates:

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace MyNamespace {

  public class MyClass {
    private void HelloWorld() {
      Console.WriteLine("Hello, World!");
    }
  }
}

Main Types

The main types provided by this library are:

  • System.CodeDom.CodeObject
  • System.CodeDom.CodeCompileUnit
  • System.CodeDom.CodeNamespace
  • System.CodeDom.CodeTypeDeclaration
  • System.CodeDom.CodeMemberMethod
  • System.CodeDom.CodeTypeReference
  • System.CodeDom.CodeMethodInvokeExpression
  • System.CodeDom.CodeTypeReferenceExpression
  • System.CodeDom.CodePrimitiveExpression
  • System.CodeDom.Compiler.CodeDomProvider
  • System.CodeDom.Compiler.CodeGeneratorOptions
  • Microsoft.CSharp.CSharpCodeProvider
  • Microsoft.VisualBasic.VBCodeProvider

Additional Documentation

Feedback & Contributing

System.CodeDom is released as open source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.

Showing the top 20 packages that depend on System.CodeDom.

Packages Downloads
Microsoft.Build.Tasks.Core
This package contains the Microsoft.Build.Tasks assembly which implements the commonly used tasks of MSBuild.
174
Microsoft.Build.Tasks.Core
This package contains the Microsoft.Build.Tasks assembly which implements the commonly used tasks of MSBuild.
179
Microsoft.Build.Tasks.Core
This package contains the Microsoft.Build.Tasks assembly which implements the commonly used tasks of MSBuild.
181
Microsoft.Build.Tasks.Core
This package contains the Microsoft.Build.Tasks assembly which implements the commonly used tasks of MSBuild.
182
Microsoft.Build.Tasks.Core
This package contains the Microsoft.Build.Tasks assembly which implements the commonly used tasks of MSBuild.
183
Microsoft.Build.Tasks.Core
This package contains the Microsoft.Build.Tasks assembly which implements the commonly used tasks of MSBuild.
185
Microsoft.Build.Tasks.Core
This package contains the Microsoft.Build.Tasks assembly which implements the commonly used tasks of MSBuild.
192
Microsoft.Build.Tasks.Core
This package contains the Microsoft.Build.Tasks assembly which implements the commonly used tasks of MSBuild.
196
Microsoft.Build.Tasks.Core
This package contains the Microsoft.Build.Tasks assembly which implements the commonly used tasks of MSBuild.
224
Microsoft.CodeAnalysis.Workspaces.MSBuild
.NET Compiler Platform ("Roslyn") support for analyzing MSBuild projects and solutions. This should be used with at least one of the following packages to add the appropriate language support: - Microsoft.CodeAnalysis.CSharp.Workspaces - Microsoft.CodeAnalysis.VisualBasic.Workspaces More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/8edf7bcd4f1594c3d68a6a567469f41dbd33dd1b.
214
Microsoft.CodeAnalysis.Workspaces.MSBuild
.NET Compiler Platform ("Roslyn") support for analyzing MSBuild projects and solutions. This should be used with at least one of the following packages to add the appropriate language support: - Microsoft.CodeAnalysis.CSharp.Workspaces - Microsoft.CodeAnalysis.VisualBasic.Workspaces More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/e68227ea677b76a3c603bd616f03ea6d952b2458.
180
Microsoft.CodeAnalysis.Workspaces.MSBuild
.NET Compiler Platform ("Roslyn") support for analyzing MSBuild projects and solutions. This should be used with at least one of the following packages to add the appropriate language support: - Microsoft.CodeAnalysis.CSharp.Workspaces - Microsoft.CodeAnalysis.VisualBasic.Workspaces More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/f99bb16a395e48a05520ba7af1549b20bfdeee36.
176
Microsoft.CodeAnalysis.Workspaces.MSBuild
.NET Compiler Platform ("Roslyn") support for analyzing MSBuild projects and solutions. This should be used with at least one of the following packages to add the appropriate language support: - Microsoft.CodeAnalysis.CSharp.Workspaces - Microsoft.CodeAnalysis.VisualBasic.Workspaces More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/fa72fa61b0d822ea8a3fbeb96f668340419ab5cd.
200
Mono.TextTemplating
Embeddable engine for the T4 templating language, a general-purpose way to generate text or code files using C#
175
Mono.TextTemplating
Embeddable engine for the T4 templating language, a general-purpose way to generate text or code files using C#
426
Mono.TextTemplating
Embeddable engine for the T4 templating language, a general-purpose way to generate text or code files using C#
559
Mono.TextTemplating
Open source implementation of the T4 templating engine This package allows embedding the T4 engine in an application. * To install as a dotnet global or local tool, use `dotnet-t4` instead. * To install in a project as a `DotNetCliToolReference`, use `dotnet-t4-project-tool` instead.
399
MsgPack.Cli
MessagePack is fast, compact, and interoperable binary serialization format. This package provides MessagePack serialization/deserialization APIs. This pacakge also supports Mono, Xamarin, .NET Core and Unity.
217
System.Management
Provides access to a rich set of management information and management events about the system, devices, and applications instrumented to the Windows Management Instrumentation (WMI) infrastructure. Commonly Used Types: System.Management.ManagementClass System.Management.ManagementObject System.Management.SelectQuery
189

https://go.microsoft.com/fwlink/?LinkID=799421

.NET Framework 4.6.2

  • No dependencies.

.NET 8.0

  • No dependencies.

.NET 9.0

  • No dependencies.

.NET Standard 2.0

  • No dependencies.

Version Downloads Last updated
11.0.0 0 11/10/2026
11.0.0-rc.3.26522.148 0 10/25/2026
11.0.0-rc.2.26504.105 0 10/13/2026
11.0.0-rc.1.26425.128 26 09/09/2026
11.0.0-preview.7.26381.103 23 08/12/2026
11.0.0-preview.6.26359.118 29 07/15/2026
11.0.0-preview.5.26302.115 38 06/09/2026
11.0.0-preview.4.26230.115 33 05/12/2026
11.0.0-preview.3.26207.106 66 04/14/2026
11.0.0-preview.2.26159.112 65 03/11/2026
11.0.0-preview.1.26104.118 58 02/12/2026
10.0.15 0 11/10/2026
10.0.14 0 10/25/2026
10.0.13 0 10/13/2026
10.0.12 21 09/09/2026
10.0.11 22 08/12/2026
10.0.10 27 07/15/2026
10.0.9 36 06/09/2026
10.0.8 38 05/12/2026
10.0.7 52 04/21/2026
10.0.6 52 04/14/2026
10.0.5 56 03/13/2026
10.0.4 42 03/11/2026
10.0.3 47 02/12/2026
10.0.2 59 01/15/2026
10.0.1 102 12/10/2025
10.0.0 101 11/12/2025
10.0.0-rc.2.25502.107 129 10/14/2025
10.0.0-rc.1.25451.107 106 09/09/2025
10.0.0-preview.7.25380.108 104 08/14/2025
10.0.0-preview.6.25358.103 133 07/16/2025
10.0.0-preview.5.25277.114 106 06/08/2025
10.0.0-preview.4.25258.110 157 05/15/2025
10.0.0-preview.3.25171.5 135 04/14/2025
10.0.0-preview.2.25163.2 125 04/02/2025
10.0.0-preview.1.25080.5 135 04/02/2025
9.0.23 0 11/10/2026
9.0.22 0 10/25/2026
9.0.21 0 10/13/2026
9.0.20 22 09/09/2026
9.0.19 23 08/12/2026
9.0.18 25 07/15/2026
9.0.17 29 06/09/2026
9.0.16 31 05/12/2026
9.0.15 54 04/14/2026
9.0.14 56 03/11/2026
9.0.13 60 02/12/2026
9.0.12 47 01/16/2026
9.0.11 81 11/12/2025
9.0.10 121 10/15/2025
9.0.9 130 09/09/2025
9.0.8 133 08/05/2025
9.0.7 97 07/09/2025
9.0.6 116 06/12/2025
9.0.5 124 05/15/2025
9.0.4 146 04/09/2025
9.0.3 149 04/02/2025
9.0.2 139 04/02/2025
9.0.1 144 04/02/2025
9.0.0 166 11/14/2024
9.0.0-rc.2.24473.5 122 10/22/2024
9.0.0-rc.1.24431.7 140 09/19/2024
9.0.0-preview.7.24405.7 124 08/20/2024
9.0.0-preview.6.24327.7 149 07/20/2024
9.0.0-preview.5.24306.7 147 07/20/2024
9.0.0-preview.4.24266.19 144 07/20/2024
9.0.0-preview.3.24172.9 156 07/20/2024
9.0.0-preview.2.24128.5 154 07/20/2024
9.0.0-preview.1.24080.9 149 07/20/2024
8.0.0 181 07/20/2024
8.0.0-rc.2.23479.6 164 07/20/2024
8.0.0-rc.1.23419.4 154 07/20/2024
8.0.0-preview.7.23375.6 149 07/20/2024
8.0.0-preview.6.23329.7 146 07/20/2024
8.0.0-preview.5.23280.8 152 07/20/2024
8.0.0-preview.4.23259.5 149 07/20/2024
8.0.0-preview.3.23174.8 151 07/20/2024
8.0.0-preview.2.23128.3 147 07/20/2024
8.0.0-preview.1.23110.8 160 07/20/2024
7.0.0 176 07/20/2024
7.0.0-rc.2.22472.3 171 07/20/2024
7.0.0-rc.1.22426.10 146 07/20/2024
7.0.0-preview.7.22375.6 150 07/20/2024
7.0.0-preview.6.22324.4 154 07/20/2024
7.0.0-preview.5.22301.12 172 07/20/2024
7.0.0-preview.4.22229.4 142 07/20/2024
7.0.0-preview.3.22175.4 153 07/20/2024
7.0.0-preview.2.22152.2 143 07/20/2024
7.0.0-preview.1.22076.8 140 07/20/2024
6.0.2-mauipre.1.22102.15 133 09/15/2024
6.0.0 245 06/24/2024
6.0.0-rc.2.21480.5 159 07/20/2024
6.0.0-rc.1.21451.13 145 07/20/2024
6.0.0-preview.7.21377.19 151 07/20/2024
6.0.0-preview.6.21352.12 152 07/20/2024
6.0.0-preview.5.21301.5 143 07/20/2024
6.0.0-preview.4.21253.7 150 07/20/2024
6.0.0-preview.3.21201.4 136 07/20/2024
6.0.0-preview.2.21154.6 131 07/20/2024
6.0.0-preview.1.21102.12 162 07/20/2024
5.0.0 370 02/05/2024
5.0.0-rc.2.20475.5 144 07/20/2024
5.0.0-rc.1.20451.14 146 07/20/2024
5.0.0-preview.8.20407.11 158 07/20/2024
5.0.0-preview.7.20364.11 133 07/20/2024
5.0.0-preview.6.20305.6 168 07/20/2024
5.0.0-preview.5.20278.1 148 07/20/2024
5.0.0-preview.4.20251.6 140 07/20/2024
5.0.0-preview.3.20214.6 140 07/20/2024
5.0.0-preview.2.20160.6 154 07/20/2024
5.0.0-preview.1.20120.5 156 07/20/2024
4.7.0 152 07/20/2024
4.7.0-preview3.19551.4 158 07/20/2024
4.7.0-preview2.19523.17 138 07/20/2024
4.7.0-preview1.19504.10 158 07/20/2024
4.6.0 151 07/20/2024
4.6.0-rc1.19456.4 166 07/20/2024
4.6.0-preview9.19421.4 157 07/20/2024
4.6.0-preview9.19416.11 153 07/20/2024
4.6.0-preview8.19405.3 159 07/20/2024
4.6.0-preview7.19362.9 154 07/20/2024
4.6.0-preview6.19303.8 138 07/20/2024
4.6.0-preview6.19264.9 169 07/20/2024
4.6.0-preview5.19224.8 168 07/20/2024
4.6.0-preview4.19212.13 154 07/20/2024
4.6.0-preview3.19128.7 151 07/20/2024
4.6.0-preview.19073.11 163 07/20/2024
4.6.0-preview.18571.3 149 07/20/2024
4.5.0 163 07/20/2024
4.5.0-rc1 158 07/20/2024
4.5.0-preview2-26406-04 163 07/20/2024
4.5.0-preview1-26216-02 145 07/20/2024
4.5.0-preview1-25914-04 156 07/20/2024
4.4.0 319 02/04/2024
4.4.0-preview2-25405-01 146 07/20/2024
4.4.0-preview1-25305-02 162 07/20/2024