1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4 
5 using Internal.TypeSystem;
6 
7 namespace ILCompiler
8 {
9     /// <summary>
10     /// Represents a metadata blocking policy. A metadata blocking policy decides what types or members are never
11     /// eligible to have their metadata generated into the executable.
12     /// </summary>
13     public abstract class MetadataBlockingPolicy
14     {
15         /// <summary>
16         /// Returns true if type definition '<paramref name="type"/>' is reflection blocked.
17         /// </summary>
IsBlocked(MetadataType type)18         public abstract bool IsBlocked(MetadataType type);
19 
20         /// <summary>
21         /// Returns true if method definition '<paramref name="method"/>' is reflection blocked.
22         /// </summary>
IsBlocked(MethodDesc method)23         public abstract bool IsBlocked(MethodDesc method);
24 
25         /// <summary>
26         /// Returns true if field definition '<paramref name="field"/>' is reflection blocked.
27         /// </summary>
IsBlocked(FieldDesc field)28         public abstract bool IsBlocked(FieldDesc field);
29     }
30 }
31