Взгляните на конструктор для ContentManager
. Требуется параметр IServiceProvider
.
Менеджер контента использует поставщика услуг для получения IGraphicsDeviceService
. Эта услуга просто предоставляет объект GraphicsDevice
. Контент-менеджеру требуется графическое устройство для загрузки текстур на указанное устройство.
По умолчанию GraphicsDeviceManager
(который является IGraphicsDeviceService
) зарегистрируется с Game.Services
(который является ISeviceProvider
), когда вы создаете его в конструкторе вашего класса игры ( происходит от Game
).
ContentManager
, предоставляемый Game.Content
, использует того же (Game.Services
) поставщика услуг. Таким образом, к моменту вызова LoadContent
он может запросить у поставщика услуг сервис графического устройства, из которого он может получить свое графическое устройство.
Исключение, которое вы получаете, заключается в том, что используемый вами ContentManager
не может получить графическое устройство (или, возможно, допустимое графическое устройство).
И причиной этого является вопиющее злоупотребление класса Game
. У вас должен быть только один. Ваш класс Screen
наследуется от Game
, поэтому у вас их несколько! Не делай этого!