We are building an app for few customers, each has its own requirements along with the similar ones. We also want to keep all the code in the same app, not branch it, and the IF
public MyInterface GetNewType() {
Type type = Type.GetType( "MyClass", true );
object newInstance = Activator.CreateInstance( type );
return newInstance as MyInterface;
}