1 #region Copyright notice and license 2 // Protocol Buffers - Google's data interchange format 3 // Copyright 2015 Google Inc. All rights reserved. 4 // 5 // Use of this source code is governed by a BSD-style 6 // license that can be found in the LICENSE file or at 7 // https://developers.google.com/open-source/licenses/bsd 8 #endregion 9 10 #if !NET5_0_OR_GREATER 11 // Copied with permission from https://github.com/dotnet/runtime/tree/8fbf206d0e518b45ca855832e8bfb391afa85972/src/libraries/System.Private.CoreLib/src/System/Diagnostics/CodeAnalysis 12 namespace System.Diagnostics.CodeAnalysis 13 { 14 /// <summary> 15 /// Specifies the types of members that are dynamically accessed. 16 /// 17 /// This enumeration has a <see cref="FlagsAttribute"/> attribute that allows a 18 /// bitwise combination of its member values. 19 /// </summary> 20 [Flags] 21 internal enum DynamicallyAccessedMemberTypes 22 { 23 /// <summary> 24 /// Specifies no members. 25 /// </summary> 26 None = 0, 27 28 /// <summary> 29 /// Specifies the default, parameterless public constructor. 30 /// </summary> 31 PublicParameterlessConstructor = 0x0001, 32 33 /// <summary> 34 /// Specifies all public constructors. 35 /// </summary> 36 PublicConstructors = 0x0002 | PublicParameterlessConstructor, 37 38 /// <summary> 39 /// Specifies all non-public constructors. 40 /// </summary> 41 NonPublicConstructors = 0x0004, 42 43 /// <summary> 44 /// Specifies all public methods. 45 /// </summary> 46 PublicMethods = 0x0008, 47 48 /// <summary> 49 /// Specifies all non-public methods. 50 /// </summary> 51 NonPublicMethods = 0x0010, 52 53 /// <summary> 54 /// Specifies all public fields. 55 /// </summary> 56 PublicFields = 0x0020, 57 58 /// <summary> 59 /// Specifies all non-public fields. 60 /// </summary> 61 NonPublicFields = 0x0040, 62 63 /// <summary> 64 /// Specifies all public nested types. 65 /// </summary> 66 PublicNestedTypes = 0x0080, 67 68 /// <summary> 69 /// Specifies all non-public nested types. 70 /// </summary> 71 NonPublicNestedTypes = 0x0100, 72 73 /// <summary> 74 /// Specifies all public properties. 75 /// </summary> 76 PublicProperties = 0x0200, 77 78 /// <summary> 79 /// Specifies all non-public properties. 80 /// </summary> 81 NonPublicProperties = 0x0400, 82 83 /// <summary> 84 /// Specifies all public events. 85 /// </summary> 86 PublicEvents = 0x0800, 87 88 /// <summary> 89 /// Specifies all non-public events. 90 /// </summary> 91 NonPublicEvents = 0x1000, 92 93 /// <summary> 94 /// Specifies all interfaces implemented by the type. 95 /// </summary> 96 Interfaces = 0x2000, 97 98 /// <summary> 99 /// Specifies all members. 100 /// </summary> 101 All = ~None 102 } 103 } 104 #endif 105