如何将策略注入添加到私有方法

本文关键字:有方法 添加 注入 策略 | 更新日期: 2023-09-27 17:56:14

我遇到以下情况。

我们有一个私有方法,我想通过使用处理程序属性添加策略注入。此方法由我的接口中定义的几个不同的公共方法调用。我正在工厂中实例化存储库,在那里我返回包装的对象。到目前为止,我无法在我的私有方法上获得策略注入。我是否以错误的方式包装了对象?我还尝试通过直接实例化存储库对象来创建包装的对象。到目前为止,我只将属性添加到公共方法中,在这种情况下,我在界面中添加了正常工作的属性。希望任何人都知道如何完成这项工作。

请参阅下面的我的实现:

// 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);
}

如何将策略注入添加到私有方法

CodePlex 上的埃维诺支持部门获得了有关此问题的一些帮助。他们告诉我,你只能拦截公共方法/属性。他们还给了我企业库策略注入块限制的链接,可以在 MSDN 上找到:http://msdn.microsoft.com/en-us/library/ff650508.aspx#intro_limitations