我遇到以下情况。
我们有一个私有方法,我想通过使用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);
}
答案 0 :(得分:0)
在CodePlex的Avanade支持上获得了一些关于此问题的帮助。他们告诉我你只能拦截公共方法/财产。他们还向我提供了企业库策略注入阻止限制的链接,可以在MSDN上找到:http://msdn.microsoft.com/en-us/library/ff650508.aspx#intro_limitations