В моем подмодуле у меня есть:
public class CustomerRepository : ICustomerRepository
{
private readonly IDBEngine _dbEngine;
[CanBeNull] private readonly string _overriddenDebugEmail;
[Obsolete("Use the other constructor")]
public CustomerRepository(IDBEngine dbEngine)
{
_dbEngine = dbEngine;
_overriddenDebugEmail = null;
}
// ReSharper disable once UnusedMember.Global
public CustomerRepository(IDBEngine dbEngine, IDebugConstants debugConstants)
{
_dbEngine = dbEngine;
_overriddenDebugEmail = debugConstants.OverridingDebugEmail;
}
...
Проблема в том, что когда я просто обновляю подмодуль без реализации IDebugConstants, я получаю следующую ошибку времени выполнения:
Ошибка активации IDebugConstants
Соответствующие привязки недоступны, и тип не может быть привязан самостоятельно.
Я хочу, чтобы Ninject привязывалась к конструктору Obsolete, если IDebugConstants не реализован. Но отказывается из-за устаревшего атрибута. Теоретически я мог бы удалить атрибут Obsolete, но я хочу, чтобы он показал, что этот код больше не должен существовать после обновления всех старых программ, использующих подмодуль.
Есть ли способ заставить Ninject игнорировать атрибут Obsolete?
Или я как-то ошибаюсь?