Автоматизация MS Word в C # - Невозможно преобразовать объект типа 'System.String [*]' к типу 'System.String []'

Я использую этот код для получения строкового массива заголовков, используемых в документе MS Word 2007 (.docx):

dynamic arr = Document.GetCrossReferenceItems(WdReferenceType.wdRefTypeHeading);

Используя отладчик, я вижу, что arr динамически назначается массив String с заголовками всех моих заголовков в документе (около 40 записей). Пока все хорошо.

Затем я хочу получить доступ к строкам, но независимо от того, как я это делаю, я получаю следующее исключение:

InvalidCastException: 
           Unable to cast object of type 'System.String[*]' to type 'System.String[]'.

Я пробовал разные способы доступа к строкам:

По индексу:

String arr_elem = arr[1];

Приведением к IEnumerable:

IEnumerable list = (IEnumerable)arr;

Используя простой цикл foreach:

foreach (String str in arr)
{
   Console.WriteLine(str);
}

Однако, что бы я ни пытался, я всегда получаю такое же исключение, как показано выше.

Кто-нибудь может объяснить, что я здесь не хватает / что я делаю не так? И особенно String [*] - что это значит?

9
задан Lasse Christiansen 16 August 2011 в 20:02
поделиться