我正在编写 Adobe InDesign 的一些脚本。他们的 COM 实现确实是为 VB 设计的,因此报告数据类型并不严格,偶尔需要使用动态。
我正在尝试调试一段如下所示的代码:
foreach (dynamic pi in current.PageItems)
{
if (pi is TextFrame)
{
var frame = pi as TextFrame;
var str = frame.Contents.ToString();
Debug.WriteLine(str);
}
}
这给了我一个像这样的 RuntimeBinderException:
附加信息:无法动态调用方法“WriteLine”,因为它具有条件属性
我知道问题在于,使用条件属性,需要处理动态在运行时解析为的类型的代码版本可能已经编译出来,但我明确地将我想要调试的内容转换为字符串,所以我不明白为什么这仍在发生。我该如何解决这个问题?