c# - 调试时对象有“无法评估表达式”
问题描述
这篇文章的目的是讨论一个我觉得相当抽象的话题。不幸的是,不会有可复制的例子,但我很好奇这里是否有人以前遇到过这种情况,以及一些关于可能发生的事情的提示。希望下面所述的内容足以让您做出一个整体的想法。
在编写一些单元测试时,我注意到正在发生的事情并使测试失败。在调试时,我注意到一个对象 ,Properties
由于"Could not evaluate expression"
将鼠标悬停在它上面时,它基本上是空的。这会导致程序将其视为 null,从而使测试失败。
我在代码方面考虑了所有可能的原因,然后我认为这可能是 Visual Studio 的调试设置有问题,只是发现这是因为从该对象导入的程序集。
这个程序集被加载到项目中,如下所示:
<Reference Include="Connectivity.DataModel, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\..\_external\nuget\nes\Connectivity.DataModel.1.0.0\lib\netstandard2.0\Connectivity.DataModel.dll</HintPath>
</Reference>
我注意到在另一个项目中,它Connectivity.DataModel.dll
被引用为 NuGet 而不是程序集。因此,我将上面的代码更改为:
<ItemGroup>
<PackageReference Include="Connectivity.DataModel" Version="1.0.0" />
</ItemGroup>
这最终使对象Properties
按预期工作。
奇怪的是现在才出现 - 所以在用第二个代码替换第一个代码之后,我运行应用程序,确保测试通过,然后决定撤消这个更改,因为理论上它应该无论如何都可以工作。在恢复到以前引用它的方式后,我惊讶地发现它仍然有效 - 基本上以前会提示我该"Could not evaluate expression"
错误消息的内容,现在有效。
会发生什么?为什么在将其作为 NuGet 引用并运行一次代码后它会起作用?现在最奇怪的部分是,如果没有从 git 获取该项目的全新副本,我将无法复制该问题。
提前感谢您的任何建议!
解决方案
推荐阅读
- python - 在 Loki 中向文件管理器日志条目添加标签
- matlab - 如何确保我的优化算法找到了解决方案?
- reactjs - 使用 Gatsby.js 在重定向中捕获参数
- python - pyinstaller 不能包含包
- c# - Kendo ASP.NET MVC Grid Pageable() 属性组合
- python - Django 和 Yubikey 集成
- python-3.x - 如何创建从 a 到 z 和 A 到 Z 的列表
- qt - 如何在 qml 中创建自定义本地模板对象?
- python-3.x - 使用 MergeTree 引擎 Clickhouse 创建分区键时出错
- python - 一个语句执行后数据库文件关闭,类型错误:“NoneType”对象不可下标