Я понял, в чем проблема. Для всех, кто сталкивается с этим с. net Core, проблема в том, что ядро. net, по-видимому, не поддерживает динамические типы c через COM автоматически. Это обсуждается в следующей проблеме github Проблема Github о неработающей динамике c . Где это говорит о том, почему это не работает.
В принципе, для моего конкретного случая c мне нужно было привести тип вручную, и тогда это сработало. Это также влияет на использование типов COM IEnumerable, которые необходимо привести непосредственно к IEnumerable, прежде чем выполнять их итерацию.
Предполагая, что у вас есть следующее выражение using.
using Excel = Microsoft.Office.Interop.Excel;
Мне пришлось включить следующее:
return range.Name.Name;
в
return ((Excel.Name)range.Name).Name;
Кроме того, я также заметил, что если вы скопируете / вставите приведенный выше приведенный выше код в окно просмотра отладки, оно не будет отображаться должным образом, а вместо этого отобразит исключение о недействительном акте.