这个简单的F#块出了什么问题?

Pau*_*icz 1 f#

我在C#中有一个看起来像这样的测试:

public void CanLog()
{
    ModUnderTest.Log.Info("HI");
}
Run Code Online (Sandbox Code Playgroud)

此C#代码抛出一个Null Reference异常,表示ModUnderTest.Log在测试中为null.这是测试中的代码:

module ModUnderTest
    let Log = log4net.LogManager.GetLogger("name")
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?它编译很好但在运行时失败.

Bri*_*ian 5

我的猜测是(1)GetLogger返回null(你有错误的'name'),或者(2)F#代码在EXE而不是DLL中,并且模块的静态初始化程序没有运行.