Создайте экземпляр IImageLogBuilder
в конструкторе для LogBinaryWriter
и присвойте его _imageLogBuilder
.Вы должны будете сделать это в конструкторе, так как _imageLogBuilder
помечен как readonly
.
Например, если у вас есть класс с именем MyImageLogBuilder
, который реализует IImageLogBuilder
:
public LogBinaryWriter()
{
_imageLogBuilder = new MyImageLogBuilder();
}
Вы также можете перегрузить конструктор, чтобы вы могли передать IImageLogBuilder
, который вы хотите использовать (поиск в конструкторе поиска для получения дополнительной информации об этом шаблоне):
public LogBinaryWriter(IImageLogBuilder imageLogBuilder)
{
_imageLogBuilder = imageLogBuilder;
}
Помните, вам понадобитсякласс, который реализует интерфейс IImageLogBuilder
, чтобы иметь возможность создавать новый экземпляр и назначать его переменной _imageLogBuilder
.Например:
public interface IImageLogBuilder
{
void Log(string message);
}
//The class below IMPLEMENTS the IImageLogBuilder interface
public class MyImageLogBuilder : IImageLogBuilder
{
//Implement IImageLogBuilder methods here
public void Log(string message)
{
//Log message
}
}
Если у вас есть что-то похожее на классы, определенные выше, вы можете выполнить следующее в конструкторе LogBinaryWriter
, и вы больше не получите ошибку нулевой ссылки.
public LogBinaryWriter()
{
_imageLogBuilder = new MyImageLogBuilder();
}