CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'

Property Value
Rule ID CA1419
Title Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'
Category Interoperability
Fix is breaking or non-breaking Non-breaking
Enabled by default in .NET 8 As suggestion

Cause

A concrete SafeHandle type requires a parameterless constructor that is at least as visible as the containing type.

Rule description

Providing a public parameterless constructor for a type derived from SafeHandle enables better performance and usage with source-generated interop solutions.

How to fix violations

Add a parameterless constructor to your type.

When to suppress warnings

Do not suppress a warning from this rule.

See also