在几个不同的项目中,我一直面临着 automapper 的间歇性问题。
%99.9 的时间,可空布尔值上的映射工作正常。然而,间歇性地,在某些时候它肯定会开始错误地映射 false 和 null 值,甚至在更罕见的情况下,我看到它映射 false 到 true。
很长一段时间我都认为它可能在我的脑海中,但今天它在向我的同事展示了一项新功能时得到了验证。始终如一地,它将 null 映射为 false,并将 false 映射为 null。据我所知,一旦开始,每个可为空的布尔值都会发生这种情况。
奇怪的是,一旦我重建项目,它就会停止这样做。
在一个项目中,我们认为通过编写一个小函数来解决问题,该函数只接收源值并将明显的值返回,但这是从可为空的布尔值映射到不可为空的布尔值。但是今天,它从一个可以为空的布尔值变成了一个可以为空的布尔值。
而且我不知道如何调试它。我无法让它以任何程度的可预测性重现,并且甚至编写了一个运行 3000 次的硒测试以试图将其绊倒,但无济于事。
我有一个来自今天早些时候的请求的 trace.axd,如果这可能会有所帮助。
谁能给我建议?我们使用 C#、Visual Studio、IIS、AutoMapper 以及 .Net MVC 和实体框架。
在这一点上,我很慌张,我不知道我还能提供什么其他信息。我自己是初级开发人员的高端,但今天我团队的一位高级开发人员验证了这一点。很高兴知道我没有看到任何东西。