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

时间:2011-05-13 08:29:19

标签: c# enterprise-library policy-injection

我遇到以下情况。

我们有一个私有方法,我想通过使用handlerAttribute添加policyinjection。这个方法由我的界面中定义的一些不同的公共方法调用。我在工厂中实例化存储库,在那里我返回包装对象。到目前为止,我无法使用我的私有方法进行政策投注。我是以错误的方式包裹物体吗?我还尝试通过直接实例化存储库对象来创建包装对象。到目前为止,我只将属性添加到公共方法中,在这种情况下,我在界面中添加了正常工作的属性。希望任何人都知道如何使这项工作。

请参阅下面的实施:

// 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 :(得分:0)

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