我有一个方法,只有在满足某个条件时才可以访问,如果不是,那么该方法将不会被执行。目前,这是我编写的东西:现在使用属性来检查是否访问方法
public void CanAccessDatabase()
{
if(StaticClass.IsEligible())
{
return;
}
// do the logic
}
,这个代码是丑陋的,因为不出来哪里有这个if(StaticClass.IsEligible())
条件是不相关的方法的关注。
所以我正在考虑将IsEligible
方法放在属性中,以便我的代码看起来像这样。 如果条件未满足,则此方法将仅返回而不执行下面的逻辑。
[IsEligibleCheck]
public void CanAccessDatabase()
{
// do the logic
}
资格是一个运行时决定的,当然。
关于如何编码IsEligibleCheck
的逻辑的任何想法?谢谢
编辑:我知道PostSharp可以做到这一点,但我正在寻找一些可用的,不依赖任何第三方库的东西。
是一个资格编译时或运行时决定呢? – 2009-12-21 01:27:18
如果某些事情在无法访问时尝试调用该方法,会发生什么情况?异常抛出?沉默失败?垃圾结果? – 2009-12-21 01:27:30
如果这是一个编译时决定,那么你可以使用属性'[Conditional(“CONDITION1”)]' – 2009-12-21 01:39:08