PostSharp6.1/API Reference/Post­Sharp.​Extensibility Namespace/Multicast­Attributes Enumeration

MulticastAttributes Enumeration

Attributes of elements to which multicast custom attributes (MulticastAttribute) apply.

Namespace:  PostSharp.Extensibility
Assembly:  PostSharp (in PostSharp.dll) Version: (
public enum MulticastAttributes
  Member nameValueDescription
Default0 Specifies that the set of target attributes is inherited from the parent custom attribute.
Private2 Private (visible inside the current type).
Protected4 Protected (visible inside derived types).
Internal8 Internal (visible inside the current assembly).
InternalAndProtected16 Internal and protected (visible inside derived types that are defined in the current assembly).
InternalOrProtected32 Internal or protected (visible inside all derived types and in the current assembly).
Public64 Public (visible everywhere).
AnyVisibility126 Any visibility.
Static128 Static scope.
Instance256 Instance scope.
AnyScope384 Any scope (Static | Instance).
Abstract512 Abstract methods.
NonAbstract1024 Concrete (non-abstract) methods.
AnyAbstraction1536 Any abstraction (Abstract | NonAbstract).
Virtual2048 Virtual methods.
NonVirtual4096 Non-virtual methods.
AnyVirtuality6144 Any virtuality (Virtual | NonVirtual).
Managed8192 Managed code implementation.
NonManaged16384 Non-managed code implementation (external or system).
AnyImplementation24576 Any implementation (Managed | NonManaged).
Literal32768 Literal fields.
NonLiteral65536 Non-literal fields.
AnyLiterality98304 Any field literality (Literal | NonLiteral).
InParameter131072 Input parameters.
CompilerGenerated262144 Compiler-generated code.
UserGenerated524288 User-generated code (anything expected CompilerGenerated).
AnyGeneration786432 Any code generation (CompilerGenerated | UserGenerated)l
OutParameter1048576 Output (out in C#) parameters.
RefParameter2097152 Input/Output (ref in C#) parameters.
AnyParameter3276800 Any kind of parameter passing (InParameter | OutParameter | RefParameter).
All4194302 All members.
When specifying attributes of target members or types, do not forget to provide all categories of flags, not only the category on which you want to put a restriction. If you want to limit, for instance, a custom attribute to be applied on public members, a good practice is to set TargetMemberAttributes = MulticastAttributes.Public | ~MulticastAttributes.AnyVisibility, unless the parent is more restrictive, in which case you should specify attributes explicitly.
See Also