В моем подмодуле у меня есть:
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 к конструктору устаревших, если IDebugConstants не реализован.Но он отказывается из-за устаревшего атрибута.Теоретически я мог бы удалить атрибут Obsolete, но я хочу показать, что этот код больше не должен существовать после обновления всех старых программ, использующих подмодуль.
Есть ли способ заставить Ninject игнорировать атрибут Obsolete?
Или я как-то совершенно не так?