Open sandboxFocus

Class MulticastAspect

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.

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 true.

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 builder parameter.

BuildAspect(IAspectBuilder<INamedType>)

Initializes the aspect. The implementation must add advice, child aspects and validators using the builder parameter.

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.