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
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.