dotnet / dotnet-api-docs

.NET API reference documentation (.NET 5+, .NET Core, .NET Framework)
https://docs.microsoft.com/dotnet/api/
Other
727 stars 1.56k forks source link

All alternatives of an attribute with FrameworkAlternate are shown regardless of framework selected #2851

Open mikkelbu opened 5 years ago

mikkelbu commented 5 years ago

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 one AttributeUsage 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)]
public sealed class SecuritySafeCriticalAttribute : Attribute

Examining the "code-behind" - https://github.com/dotnet/dotnet-api-docs/blob/master/xml/System.Security/SecuritySafeCriticalAttribute.xml - reveals that each AttributeUsage 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 relevant AttributeUsage was shown. As it is now one can only know the correct AttributeUsage by examining the xml file.

mairaw commented 5 years ago

Hi @mikkelbu, we're aware of this issue and we're currently doing some infrastructure work to allow this to work.

@mimisasouvanh I believe I have ranked attributes pretty high on the list of things that should be version-aware after we move to SDP. Please confirm.

/cc @dend @TianqiZhang @wh-alice

mimisasouvanh commented 5 years ago

@mairaw Yes attributes are on the rank as #1 of the priority list of Property Level Versioning.