I'm designing a small application infrastructure library, aiming to simplify development of ASP.NET MVC based applications. Main goal is to enforce convention over configuration.Hovewer, I still want to make some parts configurable by developpers.I'm leaning towards the following design:public interface IConfiguration{    SomeType SomeValue;}// this one won't get registered in containerprotected class DefaultConfiguration : IConfiguration{    public SomeType SomeValue { get { return SomeType.Default; } }}// declared inside 3rd party library, will get registered in containerprotected class CustomConfiguration : IConfiguration{    public SomeType SomeValue  { get { return SomeType.Custom; } }}And the service class :public class Service{    private IConfiguration conf = new DefaultConfiguration();    // optional dependency, if found, will be set to CustomConfiguration by DI container    public IConfiguration Conf { get { return conf; } set { conf = value; } }    public void Configure()    {        DoSomethingWith( Conf );    }}There, the configuration part is clearly a dependency of the service class, but it this an overuse of DI ?
Customizing configuration with Dependency Injection
design;dependency injection;application design