CA2267: Plaats aanhalingstekens om witruimte in waarden van op bestanden gebaseerde programmabestandsrichtlijnen

Vastgoed Value
Regel-ID CA2267
Title Plaats witruimte tussen aanhalingstekens in waarden van bestandsgebaseerde programmarichtlijnen
Categorie Usage
Fix kan brekend of niet-brekend zijn Non-breaking
Standaard ingeschakeld in .NET 11 Als waarschuwing
Toepasselijke talen C#

Oorzaak

De waarde van een bestandsgebaseerde directive #: bevat witruimte die niet tussen aanhalingstekens is geplaatst.

Beschrijving van regel

Voordat het quoteren werd ondersteund, werd witruimte in een op bestanden gebaseerde programmarichtlijnwaarde #: letterlijk genomen. Dat formulier werkt nog steeds, maar is afgeschaft. Plaats waarden die witruimte bevatten tussen dubbele aanhalingstekens ("), zodat ze eenduidig worden geparseerd.

Deze regel is van toepassing op de directieven #:sdk, #:package, #:project, #:property, #:ref, #:include en #:exclude. Het wordt alleen gerapporteerd wanneer de waarde een ondubbelzinnig, tussen aanhalingstekens geplaatst equivalent heeft dat de semantiek behoudt, zodat het toepassen van de correctie nooit de betekenis van de richtlijn wijzigt.

Zie Op bestanden gebaseerde apps voor meer informatie over op bestanden gebaseerde apps en hun instructies.

Hoe schendingen op te lossen

Voeg dubbele aanhalingstekens toe rond de semantische waarde, zodat witruimte ondubbelzinnig wordt geparseerd. Voor samengestelde formulieren, zoals een eigenschapstoewijzing of een pakketnaam en -versie, noemt u het deel na het scheidingsteken. Bewaar alle opzettelijke witruimte rond het scheidingsteken buiten de aanhalingstekens.

In Visual Studio kunt u ook de codefix Aanhalingstekens toevoegen rond de richtlijnwaarde toepassen.

Example

Het volgende codefragment toont een schending van CA2267.

#:property Description=Hello World

Met het volgende codefragment wordt de schending opgelost.

#:property Description="Hello World"

De codecorrectie behoudt de witruimte rond scheidingstekens en tussen het type van de instructie en de bijbehorende waarde. Met de volgende instructies worden bijvoorbeeld namen en scheidingstekens uitgelijnd:

#:property Prop  = Value
#:package  First @ 1.0

Met de codeoplossing worden aanhalingstekens toegevoegd zonder deze uitlijning te wijzigen:

#:property Prop  = "Value"
#:package  First @ "1.0"

Wanneer waarschuwingen onderdrukken

Het is niet raadzaam deze waarschuwing te onderdrukken. De vorm met aanhalingstekens is de ondersteunde manier om witruimte in een richtlijnwaarde op te nemen, en de vorm zonder aanhalingstekens is verouderd.

Een waarschuwing onderdrukken

Voor apps op basis van bestanden onderdrukt u één schending door een #:property instructie toe te voegen aan het toegangspuntbestand.

#:property NoWarn=$(NoWarn);CA2267

Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst ervan in op none in het configuratiebestand.

[*.cs]
dotnet_diagnostic.CA2267.severity = none

Zie Hoe u codeanalysewaarschuwingen kunt onderdrukken voor meer informatie.

Zie ook