Как внедрить зависимость в статический классC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как внедрить зависимость в статический класс

Сообщение Anonymous »

В моем приложении я регулярно хочу записывать сообщения журнала на диск. Я создал простой класс регистратора, созданный с использованием внедрения зависимостей, следующим образом:

Код: Выделить всё

var logger = new LogService(new FileLogger());
logger.WriteLine("message");
Но теперь это означает, что каждый класс в моей системе, которому необходимо вести журнал, должен внедрить в него этот LogService, что кажется излишним. Поэтому я предпочитаю вместо этого сделать LogService статическим. Таким образом, его не нужно внедрять в потребляющие классы.
Но здесь возникает проблема. Если я сделаю класс регистратора статическим, невозможно будет внедрить зависимость с помощью конструктора в этот статический класс.
Итак, я изменил свой LogService на этот.

Код: Выделить всё

public static class LogService()
{
private static readonly ILoggable _logger;
static LogService()
{
_logger = new FileLogger();
}

public static void WriteLine(string message) ...
}
Мне это кажется странным. Я думаю, что это уже не DI.
Как мне лучше всего внедрить зависимости в статический класс?

Подробнее здесь: https://stackoverflow.com/questions/523 ... atic-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как вводить зависимость в статический класс
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Как вводить зависимость в статический класс
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Есть ли в Python статический конструктор или статический инициализатор?
    Anonymous » » в форуме Python
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Внутренний класс Java и статический вложенный класс – двоичный дифф
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Почему динамический класс Tailwind не переопределяет статический класс в моем элементе?
    Anonymous » » в форуме Html
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»