In C#, when I have an interface and several concrete implementations, can I cast the interface to a concrete type or is concrete type cast to interface?
An Interface can be the whole class, if however doesn't have to be, it is better when you create a constructor that accepts the Interface as Parameter and copy the Settings, this way you have control over what happens and what is needed.