Jak mogę używać Debug.Write z dynamicznymi danymi?

Robię skrypty Adobe InDesign. Ich implementacja COM jest naprawdę zaprojektowana dla VB, więc nie jest rygorystyczne w odniesieniu do raportowania typów danych, czasami wymagając użycia dynamiki.

Próbuję debugować fragment kodu, który wygląda tak:

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

Daje mi to wyjątek RuntimeBinderException w następujący sposób:

Dodatkowe informacje: Nie można dynamicznie wywoływać metody „WriteLine”, ponieważ ma atrybut warunkowy

Rozumiem, że problem polega na tym, że w przypadku atrybutów warunkowych wersja kodu, która musi obsługiwać typ, w którym dynamika rozwiązuje się w czasie wykonywania, mogła zostać skompilowana, ale jawnie konwertuję to, co chcę debugować, na łańcuch, więc Nie rozumiem, dlaczego tak się dzieje. Jak mogę obejść ten problem?

questionAnswers(3)

yourAnswerToTheQuestion