csharpc-sharpdotnetxamlavaloniauicross-platformcross-platform-xamlavaloniaguimulti-platformuser-interfacedotnetcore
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
4.2 KiB
121 lines
4.2 KiB
#pragma warning disable MA0048 // File name must match type name
|
|
// https://github.com/dotnet/runtime/tree/main/src/libraries/System.Private.CoreLib/src/System/Diagnostics/CodeAnalysis
|
|
|
|
// Licensed to the .NET Foundation under one or more agreements.
|
|
// The .NET Foundation licenses this file to you under the MIT license.
|
|
// See the LICENSE file in the project root for more information.
|
|
|
|
namespace System.Diagnostics.CodeAnalysis
|
|
{
|
|
#nullable enable
|
|
#if !NET6_0_OR_GREATER
|
|
[AttributeUsage(
|
|
AttributeTargets.Field | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter |
|
|
AttributeTargets.Parameter | AttributeTargets.Property | AttributeTargets.Method |
|
|
AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.Struct,
|
|
Inherited = false)]
|
|
internal sealed class DynamicallyAccessedMembersAttribute : Attribute
|
|
{
|
|
public DynamicallyAccessedMembersAttribute(DynamicallyAccessedMemberTypes memberTypes)
|
|
{
|
|
MemberTypes = memberTypes;
|
|
}
|
|
|
|
public DynamicallyAccessedMemberTypes MemberTypes { get; }
|
|
}
|
|
|
|
[Flags]
|
|
internal enum DynamicallyAccessedMemberTypes
|
|
{
|
|
None = 0,
|
|
PublicParameterlessConstructor = 0x0001,
|
|
PublicConstructors = 0x0002 | PublicParameterlessConstructor,
|
|
NonPublicConstructors = 0x0004,
|
|
PublicMethods = 0x0008,
|
|
NonPublicMethods = 0x0010,
|
|
PublicFields = 0x0020,
|
|
NonPublicFields = 0x0040,
|
|
PublicNestedTypes = 0x0080,
|
|
NonPublicNestedTypes = 0x0100,
|
|
PublicProperties = 0x0200,
|
|
NonPublicProperties = 0x0400,
|
|
PublicEvents = 0x0800,
|
|
NonPublicEvents = 0x1000,
|
|
Interfaces = 0x2000,
|
|
All = ~None
|
|
}
|
|
|
|
[AttributeUsage(
|
|
AttributeTargets.Constructor | AttributeTargets.Field | AttributeTargets.Method,
|
|
AllowMultiple = true, Inherited = false)]
|
|
internal sealed class DynamicDependencyAttribute : Attribute
|
|
{
|
|
public DynamicDependencyAttribute(string memberSignature)
|
|
{
|
|
MemberSignature = memberSignature;
|
|
}
|
|
|
|
public DynamicDependencyAttribute(string memberSignature, Type type)
|
|
{
|
|
MemberSignature = memberSignature;
|
|
Type = type;
|
|
}
|
|
|
|
public DynamicDependencyAttribute(string memberSignature, string typeName, string assemblyName)
|
|
{
|
|
MemberSignature = memberSignature;
|
|
TypeName = typeName;
|
|
AssemblyName = assemblyName;
|
|
}
|
|
|
|
public DynamicDependencyAttribute(DynamicallyAccessedMemberTypes memberTypes, Type type)
|
|
{
|
|
MemberTypes = memberTypes;
|
|
Type = type;
|
|
}
|
|
|
|
public DynamicDependencyAttribute(DynamicallyAccessedMemberTypes memberTypes, string typeName, string assemblyName)
|
|
{
|
|
MemberTypes = memberTypes;
|
|
TypeName = typeName;
|
|
AssemblyName = assemblyName;
|
|
}
|
|
|
|
public string? MemberSignature { get; }
|
|
public DynamicallyAccessedMemberTypes MemberTypes { get; }
|
|
public Type? Type { get; }
|
|
public string? TypeName { get; }
|
|
public string? AssemblyName { get; }
|
|
public string? Condition { get; set; }
|
|
}
|
|
|
|
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class, Inherited = false)]
|
|
internal sealed class RequiresUnreferencedCodeAttribute : Attribute
|
|
{
|
|
public RequiresUnreferencedCodeAttribute(string message)
|
|
{
|
|
Message = message;
|
|
}
|
|
|
|
public string Message { get; }
|
|
public string? Url { get; set; }
|
|
}
|
|
|
|
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
|
|
internal sealed class UnconditionalSuppressMessageAttribute : Attribute
|
|
{
|
|
public UnconditionalSuppressMessageAttribute(string category, string checkId)
|
|
{
|
|
Category = category;
|
|
CheckId = checkId;
|
|
}
|
|
public string Category { get; }
|
|
public string CheckId { get; }
|
|
public string? Scope { get; set; }
|
|
public string? Target { get; set; }
|
|
public string? MessageId { get; set; }
|
|
public string? Justification { get; set; }
|
|
}
|
|
#endif
|
|
}
|
|
|
|
|