此功能仅应用于使用 .NET Framework 版本 4 的项目。
当 监视 窗口显示对象实现 IDynamicMetaObjectProvider接口,调试器添加特殊 动态视图 节点到 " 监视 " 显示。动态视图节点显示动态对象的成员,但不允许编辑成员值。
如果用鼠标右击动态视图的任何子视图,并选择**“添加至监视”**,调试器会将为对象强制转换的新监视变量插入动态对象。也就是 object Name 将变为:
((dynamic)object.Name
评估动态视图的成员会有副作用。对于 C#,调试器不会在您转到新一行代码步骤时自动重新计算**“动态视图”**中显示的值。对于 Visual Basic,将自动刷新通过动态视图添加的表达式。
有关如何刷新**“动态视图”值的说明,请参见 如何:刷新监视值。有关副作用的说明,请参见 副作用与表达式。对于 Visual Basic,将自动重新计算“动态视图”**的中显示的值。
如果要只显示对象的动态视图,可以使用 dynamic 格式说明符,此处所示的为 C#:
ObjectName, dynamic
对于 Visual Basic,可以使用该语法:
$dynamic, ObjectName
COM 对象
动态视图还增强了 COM 对象的调试体验。如果调试程序遇到包装在一般 RCW、System.__ComObject 中的 COM 对象,则会添加对象的**“动态视图”**节点。