Como posso usar o Debug.Write com dados dinâmicos?
Eu estou fazendo alguns scripts do Adobe InDesign. Sua implementação de COM é realmente projetada para VB, portanto, não é rigoroso informar tipos de dados, ocasionalmente necessitando do uso de dinâmicas.
Eu estou tentando depurar um pedaço de código que se parece com isso:
foreach (dynamic pi in current.PageItems)
{
if (pi is TextFrame)
{
var frame = pi as TextFrame;
var str = frame.Contents.ToString();
Debug.WriteLine(str);
}
}
Isso me dá um RuntimeBinderException como este:
Informações adicionais: não é possível invocar dinamicamente o método 'WriteLine' porque ele tem um atributo condicional
Eu entendo que o problema é que com atributos condicionais, a versão do código que precisa lidar com o tipo que a dinâmica resolve em tempo de execução pode ter sido compilada, mas estou convertendo explicitamente o que eu quero depurar para uma string, então Eu não vejo porque isso ainda está acontecendo. Como posso contornar esse problema?