Building application to communicate with multiple versions of a datastore platform?
<p>I need to build an application that will communicate with multiple versions of the same datastore platform. Each version comes with its own set of libraries, exposing APIs, although the APIs across the libraries remain mostly the same in operation. In c#, is it possible to have a high level object that references the appropriate DLLs for a particular request and passes objects down to generic methods, or do I essentially need to build the methods for each version of the API?</p>

<p>Expressed in a different way, I need to essentially retrieve data from a report object. The report might live on one of three different versions of the same platform. Each of those versions has a different set of libraries exposing the APIs to interact with that version. Conceptually, I'd like to determine the version targeted by the current request, instantiate the appropriate API set to deal with that version, then pass that object down to generic methods. What I can't work out in my head is how to pass that object down to generic methods without directly referencing the same API libraries in those methods. Is there a way of doing this?</p>

<p>Many thanks,
pt</p>
