0

我有以下情况。

我们有一个私有方法,我想通过使用 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);
}
4

1 回答 1

0

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

于 2011-05-13T10:47:03.027 回答