.N .NET Landscape

CsWin32

Source Generators & Metaprogramming
github.com/microsoft/CsWin32

A source generator to add a user-defined set of Win32 P/Invoke methods and supporting types to a C# project.

GitHub stars
2,526
Forks
132
Open issues
131
NuGet downloads
4,345,010
latest 0.3.367
License
MIT
Language
C#
Last push
yesterday
22 Oct 2026
Created
1 Dec 2020

C#/Win32 Interop Projection

NuGet badge NuGet badge

C#/Win32 provides P/Invoke and COM Interop projection support for C#. It generates strongly-typed, source-generated bindings from CsWn32-compatible .winmd metadata files. CsWin32 supports the metadata of Microsoft.Windows.SDK.Win32Metadata as the 1st-party metadata.

  • Generates interop code quickly at compilation time.
  • Generates friendly overloads/extensions (including SafeHandle-types support).
  • Generates xml documentation based on and links back to learn.microsoft.com
  • Ships no bulky assemblies alongside your application.

Getting started

Demo

Animation demonstrating p/invoke code generation