Glad it also works on your end ^_^y
In my engine I implemented 3 content manager content manager for the assets System Content manager assets that needs to stay the whole application life time, and Scene content manager that will be unload every level, and Self for big assets that needs to be dispose after usage. implment something like below:
_ClickSnd = _Device.AudioMngr.Load("Sounds\Click", StorageType.System );
_LevelMusik = _Device.AudioMngr.Load("Sounds\MBG_Level1", StorageType.Scene );
_Musik = _Device.AudioMngr.Load("Sounds\Whatever", StorageType.Self );
_Device.AudioMngr.Unload( StorageType.System );
_Device.AudioMngr.Unload( StorageType.Scene );
_Musik.Dispose(); // self unloading
Internally I have only two content manager …
But for simplicity you can just use TWO content manager to store your assets
__SystemContentMngr << Store all assets that will stay the whole apps lifetime eg. fonts etcc.
__SceneContenrMngr << Store all assets that you will only need the specific level
At the end of every level just unload only __SceneContentMngr.Unload() and load again another contents to __SceneContentMngr for the next level assets.