Скажем, у меня есть интерфейс:Исключить явный метод интерфейса с PostSharp атрибут групповой
namespace MyCompany.Security
{
public interface IMySecurable
{
string GetContext();
}
}
который реализуется ряд классов, например,
namespace MyCompany.Repositories
{
using System.Collections.Generic;
using MyCompany.Security;
public class MyRepository : IMySecurable
{
public IEnumerable<string> GetAll()
{
// Repository logic
}
string IMySecurable.GetContext()
{
// Logic here
}
}
}
Я использую атрибут PostSharp применить мультивещани, мой аспект (MySecurityAspect
) для каждого класса в пространстве имен.
[assembly: MySecurityAspect(AttributeTargetTypes = "MyCompany.Repositories.*", AttributePriority = 1)]
Однако я не могу понять, как исключить реализации методов явного интерфейса, т.е.
string IMySecurable.GetContext()
{
// Logic here
}
Я попытался после документации here, используя эту инструкцию:
[assembly: MySecurityAspect(AttributeTargetMembers = "GetContext", AttributeExclude = true, AttributePriority = 2)]
Однако это не работает.
Как я могу исключить методы с использованием многоадресной рассылки, когда они являются явными реализациями интерфейса?
Вы пытались добавить атрибуты AttributeTargetType к атрибуту exclude? –