.NET COM-реализация использует прокси-объекты, эти прокси-серверы создаются внутренне и наследуются от System .__ ComObject, так что это нормальное поведение.Это своего рода «динамические объекты».Вы можете привести __ComObject к интерфейсу или классу, который вам нужен.Вы можете без проблем привести его к WorkbookClass.
Все зависит от того, как вы получите экземпляр ... если вы создадите объект с новым, например, new WorkbookClass
, C # непосредственно создаст строго типизированный объект,Вместо этого, если объект возвращается из функции COM или свойства, он часто возвращает __ComObject, потому что __ComObject может быть почти всем и может быть приведен к нескольким интерфейсам, конечно, C # не знает, что возвращать, поэтому он возвращает это специальноевид "динамического" объекта.Эти объекты называются RCW, что означает Runtime Callable Wrapper.
Хорошее чтение может быть http://www.codeproject.com/KB/cs/cominteropnet.aspx