I have a couple wrappers around third party APIs that allow me to retrieve information from certain web services. Querying these services can be rather time intensive, so in my older version of my application, I created globally static objects that maintained a cached list of data for later querying.
How can I still maintain these global lists without breaking my project encapsulation.
The project structure will look similar to the following when completed:
SyncTool.Core
---ServicesWrapper
------Service1
---------GetUsers
------Service2
---------GetUsers
---Service1Controller
------CreateCase // Access a cached List
---Service2Controller
------CreateTicket // Access a cached List
SyncTool.Web
---WebController
------ReceiveService1Request
---------CreateTicketFromCase
------ReceiveService2Request
---------CreateCaseFromTicket
Basically my application core encapsulates the main services and translates their objects into a new type of object that can be read by either service. But during the translation of one object to another, there is a massive amount of information that needs to be looked up, most of which is cached currently.