Как добавить внедрение политики в приватный метод - PullRequest
0 голосов
/ 13 мая 2011

У меня следующая ситуация.

У нас есть закрытый метод, в который я хочу добавить политическую инъекцию с помощью атрибута handler. Этот метод вызывается несколькими различными открытыми методами, которые определены в моем интерфейсе. Я создаю экземпляр хранилища на фабрике, где я возвращаю завернутый объект. До сих пор я не могу заставить политинъекцию работать над моим личным методом. Я неправильно обертываю объект? Я также попытался создать обернутый объект, непосредственно создав экземпляр объекта репозитория. До сих пор я только добавлял атрибут в публичные методы, в этом случае я добавил атрибут в интерфейсе, который работает правильно. Надеюсь, что кто-нибудь знает, как заставить это работать.

См. Мою реализацию ниже:

// My factory implementation
public static ICacheRepository Repository()
{
    return PolicyInjection.Create<CacheRepository, ICacheRepository>();
}

// My repository 
public class CacheRepository : MarshalByRefObject, ICacheRepository
{
    public void Add(string name)
    {
        Check(name);
    }

    public void Update(string name)
    {
        Check(name);
    }

    public void Delete(string name)
    {
        Check(name);
    }

    [NotNull] // <= HandlerAttribute
    private bool Check(string name)
    {
        return true;
    }
}

// My CacheRepository interface.
public interface ICacheRepository
{
    void Add(string name);
    void Update(string name);
    void Delete(string name);
}

1 Ответ

0 голосов
/ 13 мая 2011

Получил некоторую помощь по этому вопросу от поддержки Avanade на CodePlex.Они сказали мне, что вы можете только перехватить публичные методы / свойства.Они также дали мне ссылку на ограничения блока внедрения политики корпоративной библиотеки, которые можно найти в MSDN по адресу: http://msdn.microsoft.com/en-us/library/ff650508.aspx#intro_limitations

...