У меня есть общий класс репозитория с различными методами, помеченного PostSharp аспектом (SecuredOperation
) ...Override базового класса PostSharp аспект в производном классе
public class Repository<TEntity> : IRepository<TEntity>, ISecurable
where TEntity : class, IEntity
{
...
[SecuredOperation(DomainAccess.Write)]
public virtual void Add(TEntity entity)
{
this.Context.AddEntity(entity);
}
...
}
В некоторых из моих производных классов репозитория, которые я хочу измените необходимый доступ по методу Add()
(например, DomainAccess.None
).
Моя первая попытка была переопределить метод и повторно аспект ...
public class SomeRepository : Repository<SomeEntity>
{
...
[SecuredOperation(DomainAccess.None)]
public override void Add(SomeEntity entity)
{
base.Add(entity);
}
...
}
Аспект правильно применен к этому переопределенному методу, однако, как только я вызываю реализацию базового класса базового класса аспект пинки в
Очевидно, что дублирование логики базового класса в производных классах не является решением.
Как я могу обойти эту проблему переопределения аспекта базового класса в производном классе?