Suppose I have an application A and it uses library B. Both of them need another library C to work. C is strongly-named and versioned. Let's say that B was built to work with C version 1.0 and and A was built to work with C version 1.1
When A calls methods in B it passes some classes that are originated from C and this causes a problem as we have C with different versions. So I need to cast some class from C 1.1 to C 1.0. How do such problems usually solved? C is developed backward-compatible so on paper that should be possible.
In my case A calls B via reflection, not sure whether this is important.