JustDummies.DiagnosticCatalog
1.0.0-preview.5
dotnet add package JustDummies.DiagnosticCatalog --version 1.0.0-preview.5
NuGet\Install-Package JustDummies.DiagnosticCatalog -Version 1.0.0-preview.5
<PackageReference Include="JustDummies.DiagnosticCatalog" Version="1.0.0-preview.5" />
<PackageVersion Include="JustDummies.DiagnosticCatalog" Version="1.0.0-preview.5" />
<PackageReference Include="JustDummies.DiagnosticCatalog" />
paket add JustDummies.DiagnosticCatalog --version 1.0.0-preview.5
#r "nuget: JustDummies.DiagnosticCatalog, 1.0.0-preview.5"
#:package JustDummies.DiagnosticCatalog@1.0.0-preview.5
#addin nuget:?package=JustDummies.DiagnosticCatalog&version=1.0.0-preview.5&prerelease
#tool nuget:?package=JustDummies.DiagnosticCatalog&version=1.0.0-preview.5&prerelease
JustDummies.DiagnosticCatalog
The JustDummies analyzer rules — JD001 to JD033 — as compile-checked constants, so a
[SuppressMessage] names a rule the compiler resolves instead of a string nobody verifies.
using JustDummies.Diagnostics;
[SuppressMessage(JustDummiesRule.JD006.Category, JustDummiesRule.JD006.Id,
Justification = "The drawn value is the subject of the assertion below.")]
public void TheGeneratorResultIsDeliberatelyDiscarded() { }
Referencing this package also switches on the DCAT analyzers, which report a literal suppression a
catalogue could describe and one carrying no justification, and offer a fix for the first.
Why a constant rather than the literal
Not typo protection — a mistyped id leaves the rule active, so the diagnostic still reports and you find out. What it protects against is the silent case: a rule that is retired or recategorised leaves an attribute that keeps compiling, silences nothing, and no build says so.
Because this catalogue is first-party, it goes one step further than a mirror can. The
DiagnosticDescriptor that JustDummies' analyzer reports with reads the same constants this package
publishes, so the category you write is exact by construction rather than by diligence.
Install
dotnet add package JustDummies.DiagnosticCatalog
You do not need it to use JustDummies — the analyzers ship inside the
JustDummies package and report with or without this
one. Reference this only if you write suppressions of JD rules and want them checked.
To keep the constants and decline the analysis, set EnableDiagnosticCatalogAnalyzers to false in
your project.
What a rule carries
Id, Category, Title and HelpLinkUri. Hovering the constant in your IDE shows the rule's own
title, which is where the prose goes once the suppression stops carrying it.
Compatibility
netstandard2.0, which reaches every consumer JustDummies itself supports, down to the .NET Framework
4.7.2 floor.
Stability
A rule is never removed and a member is never renamed. These are const, so they are inlined into
your assembly at your compile time: deleting one would not deprecate it, it would break your build
with a message naming nothing you wrote. A rule retired from the product is carried forward as
[Obsolete] instead, so an upgrade tells you what happened.
The rest of the product
JustDummies— the library, with these analyzers bundled in.JustDummies.Xunit— the xUnit v3 adapter.
Built on DiagnosticCatalog, which also publishes
ready-made catalogues for SonarAnalyzer, the .NET CA rules, StyleCop, xUnit and others.
Links
- Repository
- The analyzer rules, one page each
- Changelog
- License — PolyForm Internal Use 1.0.0
Credits
The package icon is a crash-test dummy by Magnific, from Flaticon.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- DiagnosticCatalog (>= 1.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-preview.5 | 68 | 9/2/2026 |
| 1.0.0-preview.4 | 78 | 8/24/2026 |
| 1.0.0-preview.3 | 75 | 8/18/2026 |
| 1.0.0-preview.2 | 76 | 8/7/2026 |