Вы правы в своем утверждении. При использовании локатора сильных типов все TypeDescription
будут ссылаться на загрузчик классов, поскольку зависимые типы разрешаются лениво. Например, это означает, что если вы посмотрите тип поля типа, этот тип будет загружен только в том случае, если вы используете его впервые, что может никогда не произойти.
Как правило, эти описания типов не сохраняются в течение времени жизни загружаемого класса. Поскольку загрузчик классов никогда не будет собирать мусор во время загрузки одного из его классов, ссылка на загрузчик классов сильно не создает никаких проблем. Однако если вы захотите кэшировать описания типов между несколькими загрузками классов (что может иметь большое значение, поскольку некоторые приложения загружают тысячи классов, используя один и тот же загрузчик классов), это может стать проблемой, если загрузчик классов будет собирать мусор во время кэш все еще ссылается на описание типа с загрузчиком базового класса.
В этом случае повторное использование описаний типов будет проблематичным, так как никакие лениво ссылочные классы не могут быть разрешены после того, как загрузчик классов был собран сборщиком мусора. Обратите внимание, что описание типа может быть разрешено с использованием определенного загрузчика классов, в то время как класс определяется родителем этого загрузчика классов, поэтому это может быть проблемой.
Как правило, если вы поддерживаете кэш описаний типов для загрузчика классов, это не должно быть проблемой.