IntroduceFinalizer(IAdviser<INamedType>, string, OverrideStrategy, object?, object?)
Introduces a finalizer or overrides the implementation of the existing one. Use the With<TNewDeclaration>(TNewDeclaration) method to apply the advice to another declaration than the current one.
Declaration
public static IIntroductionAdviceResult<IMethod> IntroduceFinalizer(this IAdviser<INamedType> adviser, string template, OverrideStrategy whenExists = OverrideStrategy.Default, object? args = null, object? tags = null)
Parameters
Type | Name | Description |
---|---|---|
IAdviser<INamedType> | adviser | An adviser for a named type. |
string | template | Name of the method of the aspect class that will be used as a template for the introduced finalizer. This method must be annotated with TemplateAttribute. This method can parameters and a return type. |
OverrideStrategy | whenExists | Determines the implementation strategy when a finalizer is already declared in the target type. The default strategy is to fail with a compile-time error. |
object | args | An object (typically of anonymous type) whose properties map to parameters or type parameters of the template methods. |
object | tags | An optional opaque object of anonymous type passed to the template method and exposed under the Tags property of the meta API. |
Returns
Type | Description |
---|---|
IIntroductionAdviceResult<IMethod> |