Окружающий контекст, где члены имеют зависимости
Привет, это, вероятно, просто нехватка мыслей, но я не вижу, как решить эту проблему "красиво". У меня есть компонент, отвечающий за аудит, который используется во всей системе, например:
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
,