Wie kann ich Debug.Write mit dynamischen Daten verwenden?

Ich mache einige Skripte von Adobe InDesign. Die COM-Implementierung wurde speziell für VB entwickelt, sodass die Berichterstellung von Datentypen nicht streng genug ist und gelegentlich die Verwendung von Dynamics erforderlich macht.

Ich versuche, ein Stück Code zu debuggen, das so aussieht:

foreach (dynamic pi in current.PageItems)
{
    if (pi is TextFrame)
    {
        var frame = pi as TextFrame;
        var str = frame.Contents.ToString();
        Debug.WriteLine(str);
    }
}

Dies gibt mir eine RuntimeBinderException wie folgt:

Zusätzliche Informationen: Die Methode 'WriteLine' kann nicht dynamisch aufgerufen werden, da sie ein Bedingungsattribut hat

Ich habe das Problem, dass mit Bedingten Attributen die Version des Codes, der den Typ verarbeiten muss, in den die Dynamik zur Laufzeit aufgelöst wird, möglicherweise kompiliert wurde, aber ich konvertiere das, was ich debuggen möchte, explizit in einen String Ich verstehe nicht, warum das immer noch passiert. Wie kann ich dieses Problem umgehen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage