Пересечение 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
,
Есть мысли о том, что я делаю не так?