Open sandboxFocus

Namespace PostSharp.Aspects.Advices

Classes

Advice

Base class for all custom attributes representing an advice.

AdviceInstance

Base class for advice instances, which the aspect can provide dynamically through the IAdviceProvider interface.

AdviceParameterAttribute

Base class of the custom attributes that bind a parameter of an advice method to a value of the target of the advice, such as an argument, the instance, or a variable shared by the advices of a group.

ArgumentAttribute

Binds a parameter of an advice method to an argument of the target method, selected by its index, by its name, or by its type.

ArgumentsAttribute

Binds a parameter of an advice method to an Arguments object that holds all the arguments of the target method.

AsyncCallIdAttribute

Binds a parameter of a method boundary advice to the AsyncCallId that identifies the current execution of an async method.

AwaitedMethodAttribute

Binds a parameter of an OnMethodYieldAdvice method to the method called by the async method to get the object it awaits.

AwaitedTaskAttribute

Binds a parameter of an OnMethodYieldAdvice method to the task awaited by the async method.

AwaiterAttribute

Binds a parameter of an OnMethodEntryAdvice or OnMethodResumeAdvice method to an awaiter that the async method awaits before it continues.

BindingAttribute

Binds a parameter of an interception advice to the binding object, which invokes the next node in the chain of interceptions of the target.

CopyCustomAttributesAttribute

Custom attribute that, when applied on an aspect class, requires custom attributes present on the aspect class to be copied to the target of this class. When applied on an introduced member (see IntroduceMemberAttribute), this custom attribute requires custom attributes present on the aspect member to be copied to the introduced member.

CurrentTaskAttribute

Binds a parameter of a method boundary advice to the task that the caller of the current async method observes. The parameter is null until the method has yielded, and always null when the method is not an async method, when it is implemented with runtime async, or when its method builder is not supported.

DeclarationAttribute

Binds a parameter of an advice method to the reflection object of the target declaration.

DeclarationIdentifierAttribute

Binds a parameter of an advice method to the DeclarationIdentifier of the target declaration.

DeclarationNameAttribute

Binds a parameter of an advice method to the name of the target declaration.

Event<TDelegate>

Exposes the semantics of an event for use with the ImportMemberAttribute aspect extension.

ExceptionAttribute

Binds a parameter of an OnMethodExceptionAdvice method to the exception thrown by the target method.

FlowBehaviorAttribute

Binds a parameter of a method boundary advice to a FlowBehavior variable, which the advice sets to change the control flow of the target method.

GroupingAdvice

Base class for all advices that are possibly composed of multiple advices that can be grouped together using the Master property.

ImportLocationAdviceInstance

Represents an advice that imports a field or property (represented by a LocationInfo) of the target class into a field of the aspect class. This class is the imperative equivalent of the ImportMemberAttribute declarative advice.

ImportMemberAdviceInstance

Base class for ImportLocationAdviceInstance and ImportMethodAdviceInstance.

ImportMemberAttribute

Custom attribute that, when applied to an instance field of an aspect class, determines that this field should be bound to a method, event or property of the target class of this aspect. Valid types for fields are a concrete Delegate (to bind to a method), Property<TValue> or Property<TValue, TIndex> (to bind to a property), or Event<TDelegate> (to bind to an event).

ImportMethodAdviceInstance

Represents an advice that imports a method of the target class into the aspect class.

InitializeAspectInstanceAdvice

Custom attribute that, when applied to a method of an aspect class, specifies that this method should be invoked whenever the aspect instance needs to be initialized. The target method must have a void return value and have a single parameter of type AspectInitializationReason. This method is equivalent to RuntimeInitializeInstance().

IntroduceInterfaceAdviceInstance

Represents an advice that introduces an interface into the target class. The interface must be implemented by the aspect class.

IntroduceInterfaceAttribute

Custom attribute that, when applied to an aspect class, specifies that the aspect should introduce a given interface into the type to which the aspect is applied.

IntroduceMemberAdviceInstance

Base class for IntroduceMethodAdviceInstance.

IntroduceMemberAttribute

Custom attribute that, when applied on a method, event or property of an aspect class, specifies that this method, event or property should be introduced into the types to which the aspect is applied.

IntroduceMethodAdviceInstance

Represents an advice that introduces a method of the aspect class into the target class.

LocationValidationAdvice

Custom attribute that, when applied on a method of an aspect class, specifies that this method has the same semantics as the ValidateValue(T, string, LocationKind, LocationValidationContext) method of the ILocationValidationAspect<T> interface.

LocationValueAttribute

Binds a parameter of a location interception advice to the value of the field or property.

MatchPointcut

Pointcut that selects the methods of the target type that have a given name, and applies the advice only to those whose signature matches the bound parameters of the advice.

MethodPointcut

Custom attribute that, when applied on an advice method, specifies the name of the method that is invoked at build time to return the set of elements of code to which the advice applies.

MulticastPointcut

Custom attribute that, when applied on an advice method, specifies to which elements of code this advice applies, based on the kind, name and attributes of code elements. Works similarly to MulticastAttribute.

OnAspectsInitializedAdvice

Custom attribute that, when applied to a method of an aspect class, specifies that this method should be invoked after the instances of all the aspects applied on the same target have been initialized. The target method must have a void return value and have a single parameter of type AspectInitializationReason.

OnEventAddHandlerAdvice

Custom attribute that, when applied on a method of an aspect class, specifies that this method is an advice that has the same semantics as OnAddHandler(EventInterceptionArgs).

OnEventInvokeHandlerAdvice

Custom attribute that, when applied on a method of an aspect class, specifies that this method is an advice that has the same semantics as OnInvokeHandler(EventInterceptionArgs).

OnEventRemoveHandlerAdvice

Custom attribute that, when applied on a method of an aspect class, specifies that this method is an advice that has the same semantics as OnRemoveHandler(EventInterceptionArgs).

OnInstanceConstructedAdvice

Custom attribute that, when applied to a method of an aspect, specifies that this method should be executed after the last instance constructor of the target class of the aspect has completed execution. That is, this method is invoked when the target object is fully constructed. This custom attribute can be applied only on methods that have return type void.

OnInstanceLocationInitializedAdvice

Custom attribute that, when applied on a method of an aspect class, specifies that this method is an advice that has the same semantics as OnInstanceLocationInitialized(LocationInitializationArgs).

OnLocationGetValueAdvice

Custom attribute that, when applied on a method of an aspect class, specifies that this method is an advice that has the same semantics as OnGetValue(LocationInterceptionArgs).

OnLocationSetValueAdvice

Custom attribute that, when applied on a method of an aspect class, specifies that this method is an advice that has the same semantics as OnSetValue(LocationInterceptionArgs).

OnMethodBoundaryAdvice

Base class for OnMethodEntryAdvice, OnMethodSuccessAdvice, OnMethodExceptionAdvice, OnMethodExitAdvice, OnMethodYieldAdvice and OnMethodResumeAdvice.

OnMethodEntryAdvice

Custom attribute that, when applied on a method of an aspect class, specifies that this method is an advice that has the same semantics as OnEntry(MethodExecutionArgs).

OnMethodExceptionAdvice

Custom attribute that, when applied on a method of an aspect class, specifies that this method is an advice that has the same semantics as OnException(MethodExecutionArgs).

OnMethodExitAdvice

Custom attribute that, when applied on a method of an aspect class, specifies that this method is an advice that has the same semantics as OnExit(MethodExecutionArgs).

OnMethodInvokeAdvice

Custom attribute that, when applied on a method of an aspect class, specifies that this method is an advice that has the same semantics as OnInvoke(MethodInterceptionArgs).

OnMethodInvokeAsyncAdvice

Custom attribute that, when applied on a method of an aspect class, specifies that this method is an advice that has the same semantics as OnInvokeAsync(MethodInterceptionArgs).

OnMethodInvokeBaseAdvice

The base class for method interception advices.

OnMethodResumeAdvice

Custom attribute that, when applied on a method of an aspect class, specifies that this method is an advice that has the same semantics as OnResume(MethodExecutionArgs).

OnMethodSuccessAdvice

Custom attribute that, when applied on a method of an aspect class, specifies that this method is an advice that has the same semantics as OnSuccess(MethodExecutionArgs).

OnMethodYieldAdvice

Custom attribute that, when applied on a method of an aspect class, specifies that this method is an advice that has the same semantics as OnYield(MethodExecutionArgs).

Pointcut

Custom attribute, typically accompanying an advice, that specifies to which code elements the advice applies.

Property<TValue>

Exposes the semantics of a parameterless property for use with the ImportMemberAttribute aspect extension.

Property<TValue, TIndex>

Mimics the semantics of a property accepting a single index parameter, for use with the ImportMemberAttribute aspect extension.

ReturnValueAttribute

Binds a parameter of a method interception or method boundary advice to the return value of the target method.

SelfPointcut

Pointcut that selects exactly the aspect target.

SignaturePointcut

A Pointcut that matches target methods by name and signature. This works only with non-generic methods.

StateAttribute

Binds a parameter of an advice method to a variable shared by the advices of an advice group, for instance to pass a value from OnMethodEntryAdvice to OnMethodExitAdvice.

ThisAttribute

Binds a parameter of an advice method to the instance of the target, that is, the this object of the target method, field or property.

Interfaces

IAdviceProvider

Interface that allows an aspect to provide advices dynamically, instead of declaratively by using custom attributes.

IProperty

A weakly typed interface for the Property<TValue> class.

Enums

ArgumentAmbiguityResolution

Specifies the behavior of ArgumentAttribute when several arguments of the target method match the type of the advice parameter.

AspectInitializationReason

Enumerates the reasons why the target method of the InitializeAspectInstanceAdvice has been invoked.

CustomAttributeOverrideAction

Behavior of CopyCustomAttributesAttribute when a custom attribute of the same type already exists on the target declaration.

ImportMemberOrder

Specifies the moment when members should be imported into an aspect.

InterfaceOverrideAction

Specifies the actions to take when an interface that should be introduced into a type is already implemented by that type.

MemberOverrideAction

Specifies the actions that the IntroduceMemberAttribute aspect extension takes when the member to be introduced already exists in the aspect target type or its base type.

StateScope

Specifies the lifetime of a variable bound by StateAttribute.

Delegates

EventAccessor<TDelegate>

Defines the signature of methods implementing the Add and Remove semantics of an event.

PropertyGetter<TValue>

Defines the signature of methods implementing the Get semantics of a parameterless property.

PropertyGetter<TValue, TIndex>

Defines the signature of methods implementing the Get semantics of a property with a single index parameter.

PropertySetter<TValue>

Defines the signature of methods implementing the Set semantics of a parameterless property.

PropertySetter<TValue, TIndex>

Defines the signature of methods implementing the Set semantics of a property with a single index parameter.