- Notifications
You must be signed in to change notification settings - Fork1.6k
Description
I discovered this when I was reading up on the SecuritySafeCriticalAttribute class on
https://docs.microsoft.com/en-us/dotnet/api/system.security.securitysafecriticalattribute?view=netframework-4.8. This class have the following code snippet which does not make sense since there can only be oneAttributeUsage
on a class.
[System.AttributeUsage(System.AttributeTargets.Class|System.AttributeTargets.Struct|System.AttributeTargets.Enum|System.AttributeTargets.Constructor|System.AttributeTargets.Method|System.AttributeTargets.Field|System.AttributeTargets.Interface|System.AttributeTargets.Delegate,AllowMultiple=false,Inherited=false)][System.AttributeUsage(System.AttributeTargets.Class|System.AttributeTargets.Constructor|System.AttributeTargets.Delegate|System.AttributeTargets.Enum|System.AttributeTargets.Field|System.AttributeTargets.Interface|System.AttributeTargets.Method|System.AttributeTargets.Struct,AllowMultiple=false,Inherited=false)][System.AttributeUsage(System.AttributeTargets.All,AllowMultiple=false,Inherited=false)]publicsealedclassSecuritySafeCriticalAttribute:Attribute
Examining the "code-behind" -https://github.com/dotnet/dotnet-api-docs/blob/master/xml/System.Security/SecuritySafeCriticalAttribute.xml - reveals that eachAttributeUsage
is for a different moniker. I would have expected that changing the product and version on the page would effect the code snippet such that only the relevantAttributeUsage
was shown. As it is now one can only know the correctAttributeUsage
by examining the xml file.