Store a c# object with an assembly file

I have created a tool that requires a user to go through a relatively time consuming inintial setup that really only has to be performed the first time. Afterwards, it should only need minor adjustments as they update their model. However, I currently don't have a great solution to saving the configuration they setup with the assembly file. Is there a way to save a binary file, or binary object with the modeldoc?

I could somehow stringify my data and save that as an attribute, but it's not space efficient and involves a nasty conversion process.

I could save this data to a binary file which is fine, but how do I embed that in my modeldoc so that it goes wherever the assembly does?

If there were a way to just save the object's binary data to an attribute or custom property converting it to anything, that would be ideal.

Will it be a problem to save references to SolidWorks components? That is if the user selected a bunch of components and I get their reference from "getSelectedObjects6", would they become corrupted next time the assembly is open?

Does anyone have suggestions?

Thanks!

SolidworksApi macros