У меня есть следующий код. 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.