I'm developing a server-side project in c#. The project is like so, it has 'Admin', 'Security', and 'Communicator' which are all independent projects (class libraries). The Admin module handles all the client-side requests. If the request comes from the client-side, the Admin module passes the request to Security module. The Security module does all sorts of staff including decryption, validation, authorization etc. If the request from Admin module passes a chain of logic in the Security module, the Security module forwards the data to Communicator module. The Communicator module then performs its own logic. When the Communicator module is done, it then needs to pass the data to Admin module so that the Admin module will serve the response back to the client. Now, the issue is, Admin module references Security module, Security module references Communicator module, now Visual Studio can't allow me to reference Admin module from Communicator module because of circular dependency error. What should I do?
What I have tried:
I have tried submitting data to a cache folder and have all the modules read data from that folder and not talk to each other directly, but its cumbersome.