A base class that can be used to build aspects that mimics PostSharp attribute multicasting. This class implements multicasting from the assembly- or type-level custom attributes. Implementations of this class must provide the other implementations of the IAspect<T> generic interface for the final type of declarations.
Inheritance
Implements
Namespace: Metalama.Extensions.Multicast
Assembly: Metalama.Extensions.Multicast.dll
Syntax
public abstract class MulticastAspect : Aspect, IMulticastAttribute, IAspect<ICompilation>, IEligible<ICompilation>, IAspect<INamedType>, IAspect, ICompileTimeSerializable, ITemplateProvider, IEligible<INamedType>
Constructors
Name | Description |
---|---|
MulticastAspect(MulticastTargets, bool) | Initializes a new instance of the MulticastAspect class. |
Properties
Name | Description |
---|---|
AttributeExclude | If true, indicates that this attribute removes all other instances of the same attribute type from the set of elements defined by the current instance. |
AttributeInheritance | Determines whether this attribute is inherited. |
AttributePriority | Gets or sets the priority of the current attribute in case that multiple instances are defined on the same element (lower values are processed before). |
AttributeReplace | This property not supported in Metalama. Metalama always behaves as if this property were |
AttributeTargetAssemblies | Multicasting to external assemblies is not supported in Metalama. |
AttributeTargetElements | Gets or sets the kind of elements to which this custom attributes applies. |
AttributeTargetExternalMemberAttributes | Multicasting to external types is not supported in Metalama. |
AttributeTargetExternalTypeAttributes | Multicasting to external types is not supported in Metalama. |
AttributeTargetMemberAttributes | Gets or sets the visibilities, scopes, virtualities, and other characteristics of members to which this attribute applies. |
AttributeTargetMembers | Gets or sets the expression specifying to which members this instance applies. |
AttributeTargetParameterAttributes | Gets or sets the passing style (by value, out or ref) of parameters to which this attribute applies. |
AttributeTargetParameters | Gets or sets the expression specifying to which parameters this instance applies. |
AttributeTargetTypeAttributes | Gets or sets the attributes of types to which this attribute applies. Visibility, scope (Instance or Static) and generation are the only categories that are taken into account; attributes of other categories are ignored. |
AttributeTargetTypes | Gets or sets the expression specifying to which types this instance applies. |
Implementation |
Methods
Name | Description |
---|---|
BuildAspect(IAspectBuilder<ICompilation>) | Initializes the aspect. The implementation must add advice, child aspects and validators
using the |
BuildAspect(IAspectBuilder<INamedType>) | Initializes the aspect. The implementation must add advice, child aspects and validators
using the |
BuildEligibility(IEligibilityBuilder<ICompilation>) | Configures the eligibility of the aspect or attribute. Implementations are not allowed to reference non-static members. Implementations must call the implementation of the base class if it exists. |
BuildEligibility(IEligibilityBuilder<INamedType>) | Configures the eligibility of the aspect or attribute. Implementations are not allowed to reference non-static members. Implementations must call the implementation of the base class if it exists. |