Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
| 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.