Как я могу использовать Debug.Write с динамическими данными?
Я делаю некоторые сценарии 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, поскольку он имеет атрибут Conditional.
Я понимаю, что проблема в том, что с условными атрибутами версия кода, которая должна обрабатывать тип, к которому динамически разрешается во время выполнения, могла бы быть скомпилирована, но я явно преобразовываю то, что хочу отладить, в строку, поэтому Я не понимаю, почему это все еще происходит. Как я могу обойти эту проблему?