например.

а я вижу, чтоtypeof(Foo) возвращает ноль Почему это случилось?

Это в C #, .NET 3.5.

Я думал, что это может быть связано со сборкой, содержащей тип, который еще не загружен, но тестовое приложение показывает, что сборка загружается в начале метода, гдеtypeof используется.

Есть идеи?

Обновление 1

Я не могу предоставить воспроизводимый образец, так как это происходит в огромном приложенииКогда я говорю «иногда», я имею в виду тот же метод в моем приложении, но в разных случаях. Кроме того, когда однажды происходит сбой во время работы, каждый раз происходит сбой для этого экземпляра приложения.

Обновление 2

Рассматриваемое приложение использует огромное количество памяти и работает на 32-битной XP. Я думаю, может быть это исключение TypeLoadException или OutOfMemoryException, которое каким-то образом проглатывается (но я не понимаю, как, поскольку я пробовал это с исключениями первого шанса, включенными в отладчике).

Обновление 3

Столкнулся с той же проблемой только сейчас. Вот трассировка стека: Код до этого момента буквально просто:

Type tradeType = typeof(MyTradeType)
TradeFactory.CreateTrade(tradeType)

(раньше это было..CreateTrade(typeof(MyTradeType)) такЯ не мог сказать, еслиtypeof вернулся ноль)

Итак, похожеtypeof() не возвращает ноль но этополучить нулевой к тому времени, когда он заканчивается вCreateTrade метод.

Исключение (NullReferenceException) имеетHResult собственностью0x80004003 (Invalid pointer). ВызовSystem.Runtime.InteropServices.Marshal.GetLastWin32Error( ) (в немедленном окне) возвращает127 (The specified procedure could not be found), Я посмотрел в окне модулей и модуль, который содержит этот тип и метод был загружен, и нет никаких ошибок загрузчика.

Ответы на вопрос(5)

Ваш ответ на вопрос