如何将空引用分析的结果写入日志文件

How to get result of Null Reference Analysis into a log file

我关注类。

class Tim
{
    public Tim()
    {

    }

    public Tom GetTom()
    {
        return new Tom();
    }

}

class Tom
{
    public Tom()
    {

    }

    public Jim GetJim()
    {
        return new Jim();
    }
}

class Jim
{
    public Jim()
    {
            
    }

    public Jom GetJom()
    {
        return null;
    }
}

class Jom
{
    public Jom()
    {

    }

    public string GetMagicString()
    {
        return "Hello World";
    }
}

用法如下

class Program
{
    static void Main(string[] args)
    {
            new Tim().GetTom().GetJim().GetJom().GetMagicString();
    }
}

当我 运行 它时,会抛出一个空引用异常,并且新的空引用分析结果会在新的异常助手中精美显示,如下所示。

这很棒,因为它清楚地向我展示了此链中的哪个方法调用是导致异常的原因。但是,如果这段代码在字段中是 运行ning,我也想在日志文件中记录这个错误。为此,当我在 catch 块中捕获 NullReferenceException 时,我没有获得有关返回 null 的方法的信息。这是否仅在 VS Exception Helper 对话框中可用且此时无法记录?

Is this something only available in VS Exception Helper dialog only and cannot be logged at this point?

是的,这仅在 Visual Studio Exception Helper 中可用,此时无法记录。

这在字面上并非不可能,但您必须使用与 Visual Studio 调试器等效的功能来检测您的代码。在正常的非检测场景中,没有空引用实际来自何处的记录,因此您的日志输出无法提供该信息。