我有以下代码。CustomControlHelper 通过反射生成一个对象的实例。在这个阶段,我们不知道处理的是什么类型的对象。我们知道它将是一个 CustomControl
,但我们不知道它是否实现了任何特定的接口或扩展了其他任何类。下面的代码试图确定加载的控件是否实现了 IRichAdminCustomControl
接口。
Object obj = CustomControlHelper.GetControl(cc.Id, cc.ControlClass);
if(obj != null)
{
bool isWhatWeWant = (obj is IRichAdminCustomControl);
return isWhatWeWant;
}
这一切都很好,但是我注意到当我知道我有一个实现了IRichAdminCustomControl
的对象时,表达式的求值结果为false。
好的,这就变得非常奇怪了。如果我在调试时检查代码,表达式的求值结果为true,但是如果我立即让代码运行并检查结果,则它的求值结果为false(我已经附上一个动画GIF以说明这一点)。
有没有人遇到过这样的奇怪情况,如果有,到底是什么原因造成的?
顺便说一句,我相信我使用的产品使用Spring.NET在CustomControlHelper中提供依赖性注入。