С .NET и COM: полное руководство по взаимодействию :
Когда вам возвращается экземпляр COM-объекта через тип возвращаемого значения метода или параметр ссылки, и CLR не может определить тип, вы получите универсальный тип System .__ ComObject, поскольку COM-объекты всегда передаются / возвращаются как указатели интерфейса.
Вы можете попробовать изменить тип возвращаемого значения, используя Marshal.CreateWrapperOfType
, как в примере ниже:
MyType newObject = (MyType)Marshal.CreateWrapperOfType(oldObject, typeof(MyType))
Затем вы можете посмотреть на newObject в окне просмотра, и он должен иметь ожидаемые свойства.
Если вызов не удался, он выдаст исключение InvalidCastException.