2011-05-13 40 views
0

我有以下情况。如何将策略注入添加到私有方法

我们有一个私人方法,我想通过使用一个handlerAttribute来添加policyinjection。这个方法由我的界面中定义的几个不同的公共方法调用。我在工厂实例化存储库,在那里我返回包装的对象。直到现在,我无法得到我的私人方法的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); 
} 

回答