Browse pages
Overview
This index lists the 20 analyzer rules, one reference page per rule, grouped by the projects each rule runs in. A developer who meets a warning opens the page with the same ID to see what the rule reports, where the warning sits, and how to fix the code. Each entry carries a 1-line summary of what the rule reports.
Domain rules#
Rules LS1001 to LS1012 run in Domain only.
- LS1001: Domain References an Outer-Layer Concern: reports a Domain use of an outer-layer namespace.
- LS1002: Domain Declares an Enum: reports an enum declared in Domain.
- LS1003: Aggregate Has No State Record: reports an aggregate with no
Staterecord. - LS1004: State Case Is Not Sealed: reports a state case that is not sealed.
- LS1005: Domain Throws a Non-Domain Exception: reports a throw of a non-
DomainExceptiontype. - LS1006: Domain Exception Is Misnamed or Open: reports a
DomainExceptionsubclass that is misnamed or open. - LS1007: Domain Event Is Not an Immutable Record: reports a domain event that is not an immutable record.
- LS1008: Domain Uses Binary Floating Point: reports a
doubleorfloatuse. - LS1009: Domain Reads a Nondeterministic Value: reports a read of the clock, randomness, or a new identifier.
- LS1010: Repository Exposes a Query Surface: reports a repository that exposes a query surface.
- LS1011: Public Domain Contract Is Undocumented: reports a public contract without XML documentation.
- LS1012: Identifier Is Not a Strongly Typed Value: reports an identifier that is not a strongly typed value.
Outer-layer rules#
Rules LS2001 to LS2004 run in Application, Infrastructure, or WebApi, as each page states.
- LS2001: Implementation Type Is Not Internal Sealed: reports an implementation type that is not
internal sealed. - LS2002: Command Handler Dispatches Another Command: reports a command handler that dispatches another command.
- LS2003: WebApi Uses an MVC Controller: reports an MVC controller.
- LS2004: Command Handler Writes Through a Document Session: reports a command handler that writes through a session.
Naming and style rules#
Rules LS3001 to LS3004 run in all five projects.
- LS3001: Asynchronous Method Name Lacks Async: reports an async method name without
Async. - LS3002: CancellationToken Is Not the Last Parameter: reports a
CancellationTokenthat is misplaced or misnamed. - LS3003: File Does Not Match Its Primary Type: reports a file that does not match its primary type.
- LS3004: Concrete Class Is Not Sealed: reports a concrete leaf class that is not sealed.