Окружающий контекст, где члены имеют зависимости

Привет, это, вероятно, просто нехватка мыслей, но я не вижу, как решить эту проблему "красиво". У меня есть компонент, отвечающий за аудит, который используется во всей системе, например:

public class RemoteAuditLogger: AuditLogger{}

где AuditLogger это интерфейс. В настоящее время я использую инъекцию конструктора в несколько классов (этот список классов растет). Поэтому я смотрю на реализацию Ambient Context. У меня проблема в том, что RemoteAuditLogger имеет собственные зависимости (в данном случае прокси службы удаленного аудита).

Я хочу:

public abstract class SomeContext{
    private static SomeContext _currentCtx;
    public static SomeContext Current{
        get{
           if(_currentCtx == null){
              _currentCtx = new DefaultContext();
           }
           return _currentCtx;
        }
        set{
           _currentCtx = value;
        }
    }

    public abstract AuditLogger AuditLogger{ get; }
}

В этом сценарии DefaultContext вернет RemoteAuditLogger, Есть ли способ, которым я могу сохранить разрозненную природу контекста, удовлетворяя при этом зависимости RemoteLogger? Я не хочу SomeContext в зависимости от удаленного прокси-сервера аудита, например, так что мне кажется, что мне нужно оставить конструктор по умолчанию включенным DefaultContext,

0 ответов

Другие вопросы по тегам