- Loading...
Sponsored by Dometrain Courses—Get 30% off Dometrain Pro with code ANDREW30 and access the best courses for .NET Developers

My new book ASP.NET Core in Action, Third Edition is available now! It supports .NET 7.0, and is available as an eBook or paperback.

Customising generated code with marker attributes
Creating a source generator - Part 4
In this post I describe how to customise a source generator by reading properties from a marker attribute…

Integration testing and NuGet packaging
Creating a source generator - Part 3
In this post I describe how to integration-test your source generator, how to pack it in a NuGet package, and how to test your NuGet package!…

Testing an incremental generator with snapshot testing
Creating a source generator - Part 2
In this post I describe how to unit test an incremental generator using Verify for snapshot testing…

Creating an incremental generator
Creating a source generator - Part 1
In this post I walk through how to create a practical .NET 6 incremental source generator: an enum extensions class with a fast ToString() implementation…

Upgrading a .NET 5 "Startup-based" app to .NET 6
Exploring .NET 6 - Part 12
In this post I tackle a question I have received several times: how can I update an ASP.NET Core 5 app that uses Startup to .NET 6's minimal hosting APIs.…
![Banner image for [CallerArgumentExpression] and throw helpers](/content/images/2021/throw_helpers_banner.png)
[CallerArgumentExpression] and throw helpers
Exploring .NET 6 - Part 11
In this post I describe the new C# 10 attribute, [CallerArgumentExpression], and show how it's used in .NET 6 to create a throw helper for ArgumentNullException…

