Пересечение NLog4Net с NSubstitute и захват параметров, передаваемых в log.ErrorFormat

Я пытаюсь переписать в F# следующий C#, который копирует Log4Net-регистратор с NSubstitute и записывает параметры, переданные в вызов Log.ErrorFormat, в строку _loggerException.

string _loggerException = string.Empty;

this.c_logger.When(log => log.ErrorFormat(
    Arg.Any<string>(), Arg.Any<string>()))
    .Do(logger => _loggerException = logger.Arg<string>().ToString());

Ниже F# я достиг

let mutable _loggerException = System.String.Empty

let _logger = Substitute.For<ILog>()

SubstituteExtensions.When(_logger, _logger.WarnFormat(Arg.Any<string>(), Arg.Any<string>())).Do(fun logger -> _loggerException <- logger.Arg<string>())

Однако я получаю сообщение об ошибке по второму параметру SubstituteExtensions.When - _logger.WarnFormat(Arg.Any<string>(), Arg.Any<string>()) следующее:

Ожидалось, что это выражение будет иметь тип Action<ILog> но тут есть тип unit,

Есть мысли о том, что я делаю не так?

0 ответов

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