Вопрос

Я имею следующую ситуацию.

У нас есть личный метод, где я хочу добавить PolicyInection, используя 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);
}
.

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top