----- **Warning: this wiki page is auto-generated by the Arnolyzer solution-build process. Do not directly edit this page, as your changes will be lost on the next commit.** To edit this page, please refer to [Contributing to this project](https://github.com/DavidArno/Arnolyzer/wiki/Contributing.md). These wiki pages reflect the state of the project in development, per the last commit. For details of the latest release of the Arnolyzer Analysers, please see the [Arnolyzer website](http://http://davidarno.github.io/Arnolyzer/). ----- # AA2104 - File Must Only Contain One Type Definition # **Report code: AA2104-FileMustOnlyContainOneTypeDefinition** ## Summary ##
Status Implemented
Description To comply with the single responsibility principle, a file should only contain one non-private type definition.
Category Single Responsibilty Analyzers
Enabled by default: Yes
Severity: Error
## Cause ## A file that contains more than one class, enum or interface definition inherently contains more than one responsibility. In addition, the discoverability of these types is made harder as the pattern of matching type and file names breaks down, as there's no clear way of naming the file to match the contents. ## How to fix violations ## There currently aren't any implemented code-fixes for this rule. ## How to suppress violations ## This rule cannot be suppressed.