Как добавить внедрение политики в приватный метод
У меня следующая ситуация.
У нас есть частный метод, где я хочу добавить policyinjection, используя атрибут handlerAttribute. Этот метод вызывается несколькими различными открытыми методами, которые определены в моем интерфейсе. Я создаю экземпляр хранилища на фабрике, где я возвращаю завернутый объект. До сих пор я не могу заставить политинъекцию работать над моим личным методом. Я неправильно обертываю объект? Я также попытался создать обернутый объект, непосредственно создав экземпляр объекта репозитория. До сих пор я только добавлял атрибут к открытым методам, в этом случае я добавил атрибут в интерфейсе, который работает правильно. Надеюсь, что кто-нибудь знает, как сделать эту работу.
Смотрите мою реализацию ниже:
// 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 ответ
Получил некоторую помощь по этому вопросу от поддержки Avanade на CodePlex. Они сказали мне, что вы можете только перехватить публичные методы / свойства. Они также дали мне ссылку на ограничения блока внедрения политики корпоративной библиотеки, которые можно найти в MSDN по адресу: http://msdn.microsoft.com/en-us/library/ff650508.aspx