Я взаимодействую с SolidWorks, используя C #.
Я нахожусь на Visual Studio 2017, последняя версия (15.7.3).Проект ссылается на файлы SolidWorks .tlb
, как указано в документации.Для этих ссылок я установил «Embed Interop Types» на false
, что позволяет мне видеть тип объектов, с которыми я имею дело при отладке, и смотреть на любые открытые свойства и т. Д.
Например,, если я ожидаю FeatureManager
, он будет отображаться как FeatureManagerClass
.
Однако половина из них все еще говорит System.__ComObject
, как SldWorks
или ModelDoc2
, хотя яможно видеть SldWorksClass
и ModelDoc2Class
в обозревателе объектов.
Когда я запускаю анализ кода в проекте, он перестраивается, и появляется ~ 30 предупреждений, говорящих:
Processing COM reference 'SldWorks' from path "..." At least one of the arguments for "..." cannot be marshaled by the runtime marshaler.
или
Interface "..." is marked as [dual], but does not derive from IDispatch. It will be converted as an IUnknown-derived interface.
Я не знаю, являются ли это отдельными вопросами.Просто интересно, смогу ли я заставить все типы отображаться правильно.