for example you have the idea to rewrite the interface of a piece of software given to you as an interop.dll, what’s first ?

you decompile MSIL to get a piece of software in your favour language c#.

you pick up the main interface definition, where you know it’s important for the new implementation of the piece of software behind this interop.

but you found out, this interface has not only standard object definitions, it depends on other interface definition,.. in the end of the day you have more than two handful of interfaces they all circular depended from each other.. not mention the code injected from the interop com builder..

this sounds for you as a breach of I in SOLID, and you dig deeper into the system and found most of the circular ref comes from the breach of L

very frustrating to realise that's not possible to re-implement the wheel in a modern fashion

but one hope is there, step up on the db behind the piece of software..