In your main class instantiation
public class MyAppClass{
ribbonClass myribbon
= new ribbonClass
(); //instantiate your ribbon class as necessary}
When you load your application into AutoCAD (netload) let that application load the ribbon for you.
Now, if you are loading the application and having it run when you load it, change that behavior such that you register commands in AutoCAD that execute your program as needed, but have the main class when loaded, instantiate your ribbon so it will always be available when AutoCAD is open.
You can auto netload an application by adding a setting in the registry:
Open the registry and browse to the relevant HKLM registry key ...
HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R19.1\ACAD-D000:407\Applications\ (this may be different in your installation)
Add the following keys and values:
LOADER (string) "path_to_your_dll"
DESCRIPTION (string) "Description of your application"
LOADCTRLS (dword) 0000000e
MANAGED (dword) 00000001
Once you do this, you need to restart AutoCAD.
You may need to netload the DLL at least once before the settings work, or they may work right away.
There are other ways to do this. For more information about automatically loading your .net assembly see this:
https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/How-to-autoload-DLLs-with-AutoCAD.html