Metalama 1.0 / / Metalama Documentation / Aspect API Documentation / Metalama.​Framework.​Advising / IAdvice­Factory / Override­Accessors

Method OverrideAccessors

OverrideAccessors(IFieldOrProperty, in GetterTemplateSelector, String, Object, Object)

Overrides a field or property by specifying a method template for the getter, the setter, or both.

Declaration
IOverrideAdviceResult<IProperty> OverrideAccessors(IFieldOrProperty targetFieldOrProperty, in GetterTemplateSelector getTemplate = null, string setTemplate = null, object args = null, object tags = null)
Parameters
Type Name Description
IFieldOrProperty targetFieldOrProperty

The field or property to override.

GetterTemplateSelector getTemplate

The name of the method of the aspect class whose implementation will be used as a template for the getter, or null if the getter should not be overridden. This method must be annotated with TemplateAttribute. The signature of this method must be T Get() where T is either dynamic or a type compatible with the type of the field or property. To select a different templates for iterator getters, use the constructor of the GetterTemplateSelector type. To specify a single template for all properties, pass a string.

String setTemplate

The name of the method of the aspect class whose implementation will be used as a template for the getter, or null if the getter should not be overridden. This method must be annotated with TemplateAttribute. The signature of this method must be void Set(T value where T is either dynamic or a type compatible with the type of the field or property.

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
IOverrideAdviceResult<IProperty>
See Also

OverrideAccessors(IEvent, String, String, String, Object, Object)

Overrides an event by specifying a template for the adder, the remover, and/or the raiser.

Declaration
IOverrideAdviceResult<IEvent> OverrideAccessors(IEvent targetEvent, string addTemplate, string removeTemplate, string raiseTemplate = null, object args = null, object tags = null)
Parameters
Type Name Description
IEvent targetEvent

The event to be overridden.

String addTemplate

The name of the method of the aspect class whose type and implementation will be used as a template for the adder, or null the adder should not be overridden. This method must be annotated with TemplateAttribute. The signature of this method must be void Add(T value) where T is either dynamic or a type compatible with the type of the event.

String removeTemplate

The name of the method of the aspect class whose type and implementation will be used as a template for the remover, or null the adder should not be overridden. This method must be annotated with TemplateAttribute. The signature of this method must be void Remove(T value) where T is either dynamic or a type compatible with the type of the event.

String raiseTemplate

Not yet implemented.

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
IOverrideAdviceResult<IEvent>
See Also