Исходя из вашего комментария, вы можете рассмотреть возможность использования абстракции, которая может быть передана нижним уровням
public interface ISomeSetting {
string Path { get; }
}
и затем может быть решена с помощью контекста в поставщике
public class MyRepositotyProvider : Provider<IMyRepositoty> {
public static IMyRepositoty CreateInstance(string path) {
return new MyRepository(path);
}
protected override IMyRepositoty CreateInstance(IContext context) {
ISomeSetting setting = context.Kernel.Get<ISomeSetting>()
var path = setting.Path;
return CreateInstance(path);
}
}
Реализация будет находиться на более высоком уровне и позволяет отделяться.
В идеале хранилище могло бы быть реорганизовано, чтобы зависеть от абстракции
public class MyRepository : IMyRepository {
private readonly string _path;
public MyRepository(ISomeSetting setting)
_path = setting.Path;
}
// more code...
}
и избежать необходимости иметь провайдера для начала .